QMessageBox的默认标题是由什么确定的?

8

我希望将默认的QMessageBox标题更改为其他内容,这样我就不必为每个单独的消息框调用setWindowTitle

默认窗口标题是如何选择的?


你最好创建一个 QMessageBox 的子类,将窗口标题设置为你想要的。 - cgmb
4个回答

3

最好的方式是通过子类化QMessageBox来实现,例如:

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

在代码的任何位置都可以使用MyMessageBox

1
您可以在 .pro 文件中添加一个 TARGET。例如,在 .pro 文件中添加以下行:
TARGET = MyApp 这样,“MyApp”将被应用为可执行文件名称,并且也将作为整个项目中所有 QMessageBoxes 的 windowTitle 的默认值。

1
您还可以使用编码设置应用程序名称:QApplication::setApplicationNameQCoreApplication::setApplicationName)或 QApplication::setApplicationDisplayNameQGuiApplication::setApplicationDisplayName)。 - li ki

0

在实例化QMessageBox对象时,您不需要调用setWindowTitle方法,因为您可以在此时设置标题。


我知道我可以在构造函数中传递首选标题,但是它将在所有地方都相同,因此我认为最好将默认窗口标题更改为避免大量复制/粘贴。您是否建议为所有对话框使用const std :: string作为窗口标题?这消除了复制/粘贴的工作,但仍需要我间接地在构造函数中声明窗口标题。 - Pieter
创建一个函数通常是消除重复代码的好方法。 - user362638
@Pieter 首先,我不是C++专家,所以请原谅,我能建议的就是像Roku先生所说的那样把函数写好,在需要的时候调用它。 - SIFE

-2

在使用VC2008进行Windows开发时,它会从项目中获取名称。更改项目名称将更改标题。


这是关于Qt的问题。 - chwi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接