【问题标题】:What determines the default title for a QMessageBox?什么决定了 QMessageBox 的默认标题?
【发布时间】:2011-08-08 02:31:39
【问题描述】:

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

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

【问题讨论】:

  • 您最好创建一个 QMessageBox 的子类,将窗口标题设置为您想要的。

标签: qt qmessagebox


【解决方案1】:

最好的方法是继承QMessageBox,例如:

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

在代码的任何地方都使用MyMessageBox

【讨论】:

    【解决方案2】:

    您无需调用setWindowTitle 方法,但您可以在实例化QMessageBox 对象时命名。

    【讨论】:

    • 我知道我可以在构造函数中传递首选标题,但它会在任何地方都相同,所以我认为我最好更改默认窗口标题以节省大量副本/粘贴。您是否建议使用const std::string 作为所有对话框的窗口标题?这消除了复制/粘贴工作,但仍然需要我在构造函数中间接声明窗口标题。
    • 创建函数通常是消除重复代码的好方法。
    • @Pieter 首先,我不是 C++ 专业人士,所以请原谅我,我所能建议的就是按照 Roku 先生所说的那样制作函数,并在需要时调用它。
    【解决方案3】:

    您可以改为在 .pro 文件中添加一个目标。例如将此行添加到 .pro 文件中:

    目标 = 我的应用程序

    因此“MyApp”将被应用为可执行文件名和整个项目中所有QMessageBoxes的windowTitle的默认值。

    【讨论】:

    【解决方案4】:

    在使用 VC2008 开发的 Windows 上,它的名称来自项目。更改项目名称,它会更改标题。

    【讨论】:

    • 这是一个关于Qt的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 2016-05-30
    • 2018-11-15
    • 1970-01-01
    • 2014-08-03
    相关资源
    最近更新 更多