【发布时间】:2015-06-15 02:48:07
【问题描述】:
我在 QT 中创建了一个共享库来创建一个用户定义的静态消息框,其中选择了以下模块(下面给出了类代码)。 QtCore、QtGui、QtWidgets。但它正在抛出错误。
下面是抛出错误的库类。
//头文件
class Q_DECL_EXPORT cMessageBox
{
private:
static QMessageBox msgbox;
public:
cMessageBox();
~cMessageBox();
static void CustomMessageBox(QString strTitle,QString strMessage);
};
//CPP文件
QMessageBox cMessageBox::msgbox;
cMessageBox::cMessageBox(){}
cMessageBox::~cMessageBox(){}
void cMessageBox::CustomMessageBox(QString strTitle, QString strMessage){
msgbox.setWindowTitle(strTitle);
msgbox.setText(strMessage);
msgbox.exec();
}
//用作
cMessageBox::CustomMessageBox("Title","Message");
错误是
[
QWidget:必须在 QWidget 之前构造 QApplication
传递给 C 运行时函数的参数无效。
传递给 C 运行时函数的参数无效。
以代码 3 退出
]
如果我删除 QMessageBox 和 CustomMessageBox 方法的静态,那么它工作正常(下面给出的库使用代码)。我做了什么错误,什么时候 使用静态关键字。
cMessageBox msg;
msg.CustomMessageBox("Title","Message");
【问题讨论】:
标签: c++ qt static qt4 shared-libraries