Qt:调整QMenuBar角部件的大小

Qt:调整QMenuBar角部件的大小,qt,resize,widget,Qt,Resize,Widget,我在主窗口菜单栏的右上角放置了一个按钮: QPushButton *pb = new QPushButton("Text"); pb->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); QMainWindow *mainWindow; mainWindow->menuBar()->setCornerWidget(pb, Qt::TopRightCorner); 最初的布局很好。稍后,一个异步事件会将

我在主窗口菜单栏的右上角放置了一个按钮:

QPushButton *pb = new QPushButton("Text");
pb->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);

QMainWindow *mainWindow;
mainWindow->menuBar()->setCornerWidget(pb, Qt::TopRightCorner);
最初的布局很好。稍后,一个异步事件会将QPushButton的文本更改为更长的字符串,但它会被剪切到右侧

我可以看到QPushButton的大小随着字符串的更新而改变。如果调整了窗口的大小,QPUSH按钮将正确显示。问题似乎是让QMenuBar识别小部件的大小已更改


这个答案建议重置角落小部件。我宁愿避免这种情况,因为我的应用程序的结构让我在初始化后跳过几个难看而笨拙的环来重置角落小部件。

解决方案很简单。更新按钮调用的文本后
menuBar()->adjustSize()我已经在Qt5.5中对其进行了测试,希望它对您有用。

解决方案很简单。更新按钮调用的文本后
menuBar()->adjustSize()我已经在Qt5.5中对它进行了测试,希望它对您有用。

是的,可以。谢谢我总是在更改的小部件上尝试adjustSize()。我必须记住调整家长。是的,这很有效。谢谢我总是在更改的小部件上尝试adjustSize()。我得记得调整一下家长。