【发布时间】:2015-08-12 16:15:25
【问题描述】:
我在主窗口菜单栏的右上角放了一个按钮:
QPushButton *pb = new QPushButton("Text");
pb->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
QMainWindow *mainWindow;
mainWindow->menuBar()->setCornerWidget(pb, Qt::TopRightCorner);
初始布局很好。一段时间后,一个异步事件将 QPushButton 的文本更改为更长的字符串,但它在右侧被剪裁了。
我可以看到 QPushButton 的大小在字符串更新时发生了变化。如果调整窗口大小,QPushButton 会正确显示。问题似乎是让 QMenuBar 识别小部件的大小已更改。
这个答案How to auto change QPushButton width and QMenuBar corner widget width when change text of button? 建议重置角落小部件。我宁愿避免这种情况,因为我的应用程序的结构让我在初始化后跳过了几个丑陋和尴尬的箍来重置角落小部件。
【问题讨论】: