2011-04-18 46 views
3

我想将默认的QMessageBox标题更改为其他内容,这样我就不必为每个单独的消息框调用setWindowTitle什么决定了QMessageBox的默认标题?

如何选择默认窗口标题?

+0

您最好创建一个QMessageBox的子类,将窗口标题设置为您想要的。 – cgmb 2011-04-18 18:55:27

回答

0

您不需要在调用QMessageBox对象时调用setWindowTitle方法,而您可以调用标题。

+0

我知道我可以在构造函数中传递首选标题,但它在各处都是一样的,所以我认为最好是更改默认窗口标题以免除大量复制/粘贴。你会建议使用'const std :: string'作为所有对话框的窗口标题吗?这消除了复制/粘贴工作,但它仍然需要我间接地在构造函数中声明窗口标题。 – Pieter 2011-04-18 18:57:50

+0

创建函数通常是消除重复代码的好方法。 – 2011-04-18 19:01:48

+0

@Pieter首先,我不是C++专家,所以原谅我,我所能建议的就是像Roku先生所说的那样做功能,并在需要时调用它。 – SIFE 2011-04-18 19:14:59

-2

在使用VC2008开发的Windows上,它从项目中获取名称。改变项目的名称,它会改变标题。

+0

这是一个关于Qt的问题。 – chwi 2016-09-22 13:01:34

0

您可以改为在.pro文件中添加一个TARGET。例如该行添加到.pro文件:

TARGET = MyApp的

因此“MyApp的”将被应用既作为可执行文件的名称,也可以作为整个项目的所有QMessageBoxes的WINDOWTITLE默认值。要做到这一点

1

最好的办法是在代码中继承QMessageBox,例如:

class MyMessageBox : public QMessageBox 
{ 
    MyMessageBox() //<-- default constructor 
    { 
    setWindowTitle("Default title goes here"); //QMessageBox function 
    } 
}; 

使用MyMessageBox无处不在。