如何在点击QTabWidget'后将焦点设置回当前选项卡小部件;s的cornerWidget



嗨,我在当前选项卡中放置了一个QPushButton作为QTabWidget的角部件来刷新QTableView。但如果我单击这个刷新按钮,我的QTableView就会失去焦点,因此高亮显示的行会变灰。除非我再次单击我的表视图,否则它将保持灰色。如有任何建议,我们将不胜感激。我的目标是让这个角落小部件像菜单或工具栏按钮一样,点击时不会改变犯规。

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()));

最新更新