单击QTabWidget的cornerWidget之后如何将焦点设置回当前选项卡小部件?

问题描述 投票:0回答:1

您好,我将QPushButton作为QTabWidget的边角小部件来刷新当前选项卡中的QTableView。但是,如果单击此刷新按钮,我的QTableView将失去焦点,因此突出显示的行将变为灰色。除非再次单击表格视图,否则它将保持灰色。任何建议将不胜感激。

qt focus qtableview qtabwidget
1个回答
0
投票

1)在第一种情况下,您可以尝试使用QFocusEvent(https://doc.qt.io/archives/qt-4.8/qfocusevent.html):

void focusOutEvent(QFocusEvent *)
{
     setFocus();
}

2)或您可以这样尝试。

通过您的按钮从插槽发出自己的信号(在您的课堂上,您的按钮是这样的:]

signals:
     void SignalEmitingFromSlotOfPushButton();

在QPushButton的插槽中,您需要发射该信号。例如:

void YourSlotForQPushButtonExample()
{
  //some code
  //do something
  emit SignalEmitingFromSlotOfPushButton();

  return;
} 

现在您需要写插槽以接收自己的信号:

void SlotForReceiveOwnSignal()
{
   yourTableView->QWidget::setFocus();

   return;
}

哦,记住要进行连接

在构造函数中:

    connect(this, SIGNAL(SignalEmitingFromSlotOfPushButton()), 
            this, SLOT(SlotForReceiveOwnSignal()));
© www.soinside.com 2019 - 2024. All rights reserved.