正常状态消息 - 除非显示临时消息,否则应用程序始终显示这些消息。这就是我对正常状态消息的了解。所以在我的构造函数上使用这些代码
ui.statusbar->showMessage("Temp message", 3000); // ui is the Ui::AutoGenHeaderForForm
QLabel *label = new QLabel;
ui.statusBar->addWidget(label);
label->setText("hello world");
我知道,当我运行我的项目时,我获得状态临时消息,持续3秒。然后我没有得到 hello world 。 问候世界是否应该在临时信息的位置3秒后自动出现?
答案 0 :(得分:1)
假设您显示的代码位于主窗口的构造函数中,问题可能是由于事件未正确处理,因为事件循环在主窗口创建时尚未启动。
尝试在“延迟初始化”插槽中执行showMessage
,例如
QLabel *label = new QLabel;
ui.statusBar->addWidget(label);
label->setText("hello world");
QTimer::singleShot ( 0, this, SLOT(delayedInit() );
void MainWindow::delayedInit()
{
ui.statusbar->showMessage("Temp message", 3000); // ui is the Ui::AutoGenHeaderForForm
}
答案 1 :(得分:1)
我认为documentation非常明确:
小部件位于第一个永久小部件的最左侧 (请参阅addPermanentWidget())并可能被临时消息遮挡。