Qt的QMessageBox消息弹窗

2023-11-09

Qt的消息弹窗QMessageBox

Qt的消息弹窗QMessageBox:

转载博客地址: http://t.csdn.cn/UoVoJ
转载大佬的文章结合自己找的一些笔记。

1、 说明:

  • QMessageBox 是 Qt 框架中常用的一个类,可以生成各式各样、各种用途的消息对话框。
    很多GUI程序都会用到消息对话框,且很多场景中使用的消息对话框是类似的,唯一的区别只是提示信息不同。为了提高程序员的开发效率,避免重复地“造轮子”,Qt
    开发者设计好了几种通用的 QMessageBox 消息对话框,需要时可以直接使用。

2、6种消息框:

  • 通用的QMessageBox消息框Qt 提供了 6 种通用的 QMessageBox 消息对话框,通过调用 QMessageBox 类中的
    6 个静态成员方法,可以直接在项目中使用它们。 这6种界面上的图片无法修改,按钮上的文字也无法修改(例如无法将 OK、No
    改成中文)。

3、QMessageBox::StandardButton 枚举类型值

			枚举值						含 义
	
	QMessageBox::Ok					标有 "OK" 字样的按钮,通常用来表示用户接受或同意提示框中显示的信息。
	
	QMessageBox::Open				标有 "Open" 字样的按钮。通常用来打开文件或其他的什么东西。
	
	QMessageBox::Save				标有 "Save" 字样的按钮。通常用来表示保存的信息。
	
	QMessageBox::SaveAll			标有 "SaveAll" 字样的按钮。通常用来表示保存所有的信息。
	
	QMessageBox::Cancel				标有 "Cancel" 字样的按钮。点击此按钮,通常表示用户拒绝接受提示框中显示的信息。
	
	QMessageBox::Close				标有 "Close" 字样的按钮。通常用来表示用户关闭窗口。
	
	QMessageBox::Discard			标有 "Discard" 或者 "Don't Save" 字样的按钮,取决于运行平台。通常用来表示用户丢弃或者拒绝保存。
	
	QMessageBox::Apply				标有 "Apply" 字样的按钮。通常用来表示用户应用某些设置的信息。
	
	QMessageBox::Abort				标有 "Abort" 字样的按钮。通常用来表示用户终止或停止的信息。
	
	QMessageBox::Reset				标有 "Reset" 字样的按钮。通常用来表示用户重置的信息。
	
	QMessageBox::Retry				标有 "Retry" 字样的按钮。通常用来表示用户重试的信息。
	
	QMessageBox::Yes				标有 "Yes" 字样的按钮。通常用来表示用户接受或同意提示框中显示的信息。
	
	QMessageBox::YesAll				标有 "YesAll" 字样的按钮。通常用来表示用户接受所有或同意所有提示框中显示的信息。
	
	QMessageBox::YesToAll			标有 "YesToAll" 字样的按钮。通常用来表示用户全部接受或全部同意提示框中显示的信息。
	
	QMessageBox::No					标有 "No" 字样的按钮。通常用来表示用户拒绝或不同意提示框中显示的信息。
	
	QMessageBox::NoAll				标有 "NoAll" 字样的按钮。通常用来表示用户不接受所有或不同意所有提示框中显示的信息。
	
	QMessageBox::NoToAll			标有 "NoToAll" 字样的按钮。通常用来表示用户全部不接受或全部不同意提示框中显示的信息。
	
	QMessageBox::NoButton			标有 "NoButton" 字样的按钮。通常用来表示没有按钮的信息。
	
	QMessageBox::Ignore				标有 "Ignore" 字样的按钮。通常用来表示用户忽视或忽略提示框中显示的信息。
	
	QMessageBox::Help				标有 "Help" 字样的按钮。通常用来表示帮助的信息。
	
	QMessageBox::RestoreDefaults	标有 "RestoreDefaults" 字样的按钮。通常用来表示恢复默认值显示的信息。
	
	QMessageBox::FirstButton		标有 "FirstButton" 字样的按钮。通常用来表示第一个按钮显示的信息。
	
	QMessageBox::LastButton			标有 "LastButton" 字样的按钮。通常用来表示最后一个按钮显示的信息。
	
	QMessageBox::Default			标有 "Default" 字样的按钮。通常用来表示默认显示的信息。
	
	QMessageBox::Escape				标有 "Escape" 字样的按钮。通常用来表示逃脱的信息。
	
	QMessageBox::FlagMask			标有 "FlagMask" 字样的按钮。通常用来表示旗帜面具的信息。
	
	QMessageBox::ButtonMask			标有 "ButtonMask" 字样的按钮。通常用来表示按钮面具的信息。

3.1、 information消息对话框

3.1.1、information 对话框常用于给用户提示一些关键的信息,它的外观如下图所示。

  • 在项目中使用 information 消息对话框,直接调用 QMessageBox 类中的 information() 静态成员方法即可。

3.1.2、语法格式如下:

StandardButton QMessageBox::information(QWidget *parent,
										const QString &title,
										const QString &text,
										StandardButtons buttons = Ok,
										StandardButton defaultButton = NoButton)

3.1.3、各个参数的含义是:

		parent:指定消息对话框的父窗口,消息提示框会作为一个独立的窗口显示在父窗口的前面。消息提示框从弹出到关闭的整个过程			中,用户无法操作父窗口,更不能删除父窗口;

		title:指定消息对话框的标题,即图 2 中的 Titile;

		text:指定消息对话框的具体内容,即图 2 中的 text;

		buttons:指定消息对话框中包含的按钮。默认情况下,消息对话框只包含一个按钮,即图 2 中显示的 "OK" 			按钮。
				根据需要,我们可以用|按位或运算符在消息对话框中设置多个按钮,例如 QMessageBox::Ok|QMessageBox::Cancel;

		defaultButton:指定 Enter 回车键对应的按钮,用户按下回车键时就等同于按下此按钮。
						注意,defaultButton 参数的值必须是 buttons 中包含的按钮,
						当然也可以不手动指定,QMessageBox 会自动从 buttons 中选择合适的按钮作为 defaultButton 的值。

		返回值:information() 函数会返回用户按下的按钮。
				StandardButton 是 QMessageBox 类中定义的枚举类型,每个枚举值代表一种按钮。
				StandardButton 类型中的值有很多,下表给大家罗列了几个常用的:

3.1.4、用例:

例如,使用 information() 函数实现的对话框,实现代码为:

QMessageBox::StandardButton result = QMessageBox::information(&widget, "Title","text");
其中,widget 是我们创建好的 QWidget 窗口,创建好的 information 对话框会显示在 widget 窗口的前面。通过用 result 接收 information() 函数的返回值,我们可以得知用户选择的是哪个按钮。

3.2 critical消息对话框

3.2.1、critical 消息对话框常用于给用户提示“操作错误”或“运行失败”的信息,它的外观如下图所示:

  • 项目中使用 critical 消息对话框,直接调用 QMessageBox 类提供的 critical() 静态成员方法即可。

3.2.2、该方法的语法格式为:

StandardButton QMessageBox::critical(QWidget *parent,
									const QString &title,
									const QString &text,
									StandardButtons buttons = Ok,
									StandardButton defaultButton = NoButton)

3.2.3、各个参数的含义以及返回值的含义:

		parent:指定消息对话框的父窗口,消息提示框会作为一个独立的窗口显示在父窗口的前面。消息提示框从弹出到关闭的整个过程			中,用户无法操作父窗口,更不能删除父窗口;

		title:指定消息对话框的标题,即图 2 中的 Titile;

		text:指定消息对话框的具体内容,即图 2 中的 text;

		buttons:指定消息对话框中包含的按钮。默认情况下,消息对话框只包含一个按钮,即图 2 中显示的 "OK" 			按钮。
				根据需要,我们可以用|按位或运算符在消息对话框中设置多个按钮,例如 QMessageBox::Ok|QMessageBox::Cancel;

		defaultButton:指定 Enter 回车键对应的按钮,用户按下回车键时就等同于按下此按钮。
						注意,defaultButton 参数的值必须是 buttons 中包含的按钮,
						当然也可以不手动指定,QMessageBox 会自动从 buttons 中选择合适的按钮作为 defaultButton 的值。

		返回值:information() 函数会返回用户按下的按钮。
				StandardButton 是 QMessageBox 类中定义的枚举类型,每个枚举值代表一种按钮。
				StandardButton 类型中的值有很多,下表给大家罗列了几个常用的:

3.2.4、用例:

例如,使用 critical() 函数实现的对话框,实现代码为:
QMessageBox::StandardButton result=QMessageBox::critical(&widget, "Title","text");
其中,widget 是我们创建好的 QWidget 窗口,创建好的 critical 对话框会显示在 widget 窗口的前面。

3.3、question消息对话框

3.3.1、question 对话框常用于向用户提出问题并接收用户的答案,它的外观如下图所示:

  • 项目中使用 question 对话框,可以直接调用 QMessageBox 类的 question() 静态成员方法。

3.3.2、该方法的语法格式为:

StandardButton QMessageBox::question(QWidget *parent,
									const QString &title,
									const QString &text,
									StandardButtons buttons = StandardButtons( Yes | No ),
									StandardButton defaultButton = NoButton)

3.3.3、各个参数的含义以及返回值的含义:

		parent:指定消息对话框的父窗口,消息提示框会作为一个独立的窗口显示在父窗口的前面。消息提示框从弹出到关闭的整个过程			中,用户无法操作父窗口,更不能删除父窗口;

		title:指定消息对话框的标题,即图 2 中的 Titile;

		text:指定消息对话框的具体内容,即图 2 中的 text;

		buttons:指定消息对话框中包含的按钮。默认情况下,消息对话框只包含一个按钮,即图 2 中显示的 "OK" 			按钮。
				根据需要,我们可以用|按位或运算符在消息对话框中设置多个按钮,例如 QMessageBox::Ok|QMessageBox::Cancel;

		defaultButton:指定 Enter 回车键对应的按钮,用户按下回车键时就等同于按下此按钮。
						注意,defaultButton 参数的值必须是 buttons 中包含的按钮,
						当然也可以不手动指定,QMessageBox 会自动从 buttons 中选择合适的按钮作为 defaultButton 的值。

		返回值:information() 函数会返回用户按下的按钮。
				StandardButton 是 QMessageBox 类中定义的枚举类型,每个枚举值代表一种按钮。
				StandardButton 类型中的值有很多,下表给大家罗列了几个常用的:

3.3.4、用例:

例如,使用 question() 函数实现的对话框,实现代码为:
QMessageBox::StandardButton result=QMessageBox::question(&widget, "Title","text");
其中,widget 是我们创建好的 QWidget 窗口,创建好的 question 对话框会显示在 widget 窗口的前面。

3.4、warning消息对话框

3.4.1、warining 对话框常用于向用户显示一些警告信息,它的外观如下图所示:

  • 项目中使用 warning 对话框,可以直接调用 QMessageBox 类的 warning() 静态成员方法。

3.4.2、该方法的语法格式为:

StandardButton QMessageBox::warning(QWidget *parent,
									const QString &title,
									const QString &text,
									StandardButtons buttons = Ok,
									StandardButton defaultButton = NoButton)

3.3.3、各个参数的含义以及返回值的含义:

		parent:指定消息对话框的父窗口,消息提示框会作为一个独立的窗口显示在父窗口的前面。消息提示框从弹出到关闭的整个过程			中,用户无法操作父窗口,更不能删除父窗口;

		title:指定消息对话框的标题,即图 2 中的 Titile;

		text:指定消息对话框的具体内容,即图 2 中的 text;

		buttons:指定消息对话框中包含的按钮。默认情况下,消息对话框只包含一个按钮,即图 2 中显示的 "OK" 			按钮。
				根据需要,我们可以用|按位或运算符在消息对话框中设置多个按钮,例如 QMessageBox::Ok|QMessageBox::Cancel;

		defaultButton:指定 Enter 回车键对应的按钮,用户按下回车键时就等同于按下此按钮。
						注意,defaultButton 参数的值必须是 buttons 中包含的按钮,
						当然也可以不手动指定,QMessageBox 会自动从 buttons 中选择合适的按钮作为 defaultButton 的值。

		返回值:information() 函数会返回用户按下的按钮。
				StandardButton 是 QMessageBox 类中定义的枚举类型,每个枚举值代表一种按钮。
				StandardButton 类型中的值有很多,下表给大家罗列了几个常用的:

3.4.4、用例:

例如,使用 warning() 函数实现的对话框,实现代码为:

QMessageBox::StandardButton result=QMessageBox::warning(&widget, "Title","text");
其中,widget 是我们创建好的 QWidget 窗口,创建好的 warning 对话框会显示在 widget 窗口的前面。

3.5、about对话框

3.5.1、about 对话框常常作为介绍某个产品或某项功能的临时窗口,它的外观如下图所示:

  • 注意,about 对话框没有固定的图标,它显示的图标可能来自父窗口、包含父窗口的顶层窗口等,也可能使用和 information
    对话框相同的图标。

  • 项目中使用 about 对话框,直接调用 QMessageBox 类提供的 about() 静态成员方法即可。

3.5.2、该方法的语法格式如下:

void QMessageBox::about(QWidget *parent, const QString &title, const QString &text)

3.5.3、各个参数的含义和与 information() 函数相同。

		parent:指定消息对话框的父窗口,消息提示框会作为一个独立的窗口显示在父窗口的前面。消息提示框从弹出到关闭的整个过程			中,用户无法操作父窗口,更不能删除父窗口;

		title:指定消息对话框的标题,即图 2 中的 Titile;

		text:指定消息对话框的具体内容,即图 2 中的 text;

		和前面的几种对话框不同,about对话框中只包含一个默认的 Ok 按钮,且 about() 函数没有返回值。

3.6、aboutQt对话框:

3.6.1、aboutQt 可以看做是 about 对话框的一个具体实例,它只能显示 Qt 的介绍信息,如下图所示:

  • 项目中使用 aboutQt 对话框,直接调用 QMessageBox 类提供的 aboutQt() 静态成员方法即可。

3.6.2、该函数的语法格式如下:

void QMessageBox::aboutQt(QWidget *parent, const QString &title = QString())

3.6.3、各个参数的含义以及返回值的含义:

		parent:指定消息对话框的父窗口,消息提示框会作为一个独立的窗口显示在父窗口的前面。消息提示框从弹出到关闭的整个过程			中,用户无法操作父窗口,更不能删除父窗口;

		title:指定消息对话框的标题,即图 2 中的 Titile;
		
		我们只能设置 aboutQt 对话框的 parent 父窗口和 title 标题,不能自定义它的内容。所以在实际场景中,aboutQt() 对话框很少使用。

4、自定义QMessageBox对话框

  • 4.1、以上 6 种通用的 QMessageBox 对话框,界面上的图片无法修改,按钮上的文字也无法修改(例如无法将 OK、No 改成中文)。如果想修改它们,就需要自定义一个 QMessageBox 对话框。

  • 4.2、QMessageBox对话框的创建:

     	程序中创建 QMessageBox 对象,必须先引入<QMessageBox>头文件。QMessageBox 类提供了两个构造函数,分别是:
    
     	QMessageBox::QMessageBox(QWidget *parent = Q_NULLPTR)
     	QMessageBox::QMessageBox(Icon icon,
     							 const QString &title,
     							 const QString &text,
     							 StandardButtons buttons = NoButton,
     							 QWidget *parent = Q_NULLPTR,
     							 Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint)
    
     	第一个构造函数可以创建一个“空白”对话框,即对话框中不包含任何文本和按钮。当然,通过调用 QMessageBox 类提供的成员方法,可以向“空白”对话框中添加各种元素(图标、文本、按钮等)。
    
  • 4.3、第二个构造函数中,各个参数的含义是:

     	icon:指定对话框中的图片。Icon 是 QMessageBox 类中定义的枚举类型,内部包含: 
     	QMessageBox::NoIcon、
     	QMessageBox::Question、
     	QMessageBox::Information、
     	QMessageBox::Warning、
     	QMessageBox::Critical 几个值,
     	分别表示:不指定图片、
     					question对话框的图片、
     					information对话框的图片、
     					warning对话框的图片、
     					critical对话框的图片。
     	
     	title:指定对话框的标题;
     	
     	text:指定对话框中显示的文本信息;
     	
     	buttons:指定对话框中包含的的按钮,可选值如表 1 所示。
     	
     	parent:指定对话框的父窗口;
     	
     	f:指定对话框的属性。WindowFlags 是 Qt 提供的枚举类型,内部包含的值有很多,
     		有的用来指定对话框的用途(比如 Qt::Dialog 表示对话框窗口),
     		有的用来指定对话框的外观(比如 MSWindowsFixedSizeDialogHint 表示给对话框添加一个细的边框)
    
  • 4.4、用例:

     	举个简单的例子:
    
     	#include <QApplication>
     	#include <QMessageBox>
     	int main(int argc, char *argv[])
     	{
     		QApplication a(argc, argv);
     	
     		//创建 QMessageBox 类对象
     		QMessageBox MyBox(QMessageBox::Question,"Title","text",QMessageBox::Yes|QMessageBox::No);
     	
     		//使 MyBox 对话框显示
     		MyBox.exec();
     		
     		return a.exec();
     	}
     	
     	程序中创建了一个 MyBox 对话框,通过调用 QMessageBox 提供的 exec() 方法,可以使 MyBox 对话框弹出。运行程序可以发现,MyBox 对话框的外观和图 4 的 question 对话框完全一样。
    

5、QMessageBox对话框的使用

  • 5.1、QMessageBox 类提供了很多功能实用的成员方法,方便我们快速地制作出实际场景需要的对话框。

  • 5.2、下表给大家罗列了常用的一些 QMessageBox 常用类成员方法:

     		成员方法																			功 能
     	
     	void QMessageBox::setWindowTitle(const QString &title)							设置对话框的标题。
     	
     	void setText(const QString &text)												设置对话框中要显示的文本。
     	
     	void setIconPixmap(const QPixmap &pixmap)										设置对话框中使用的图片。
     	
     	QAbstractButton *QMessageBox::clickedButton() const								返回用户点击的按钮。
     	
     	QPushButton *QMessageBox::addButton(const QString &text, ButtonRole role)		向对话框中添加按钮,text 为按钮的文本,role 是 QMessageBox::ButtonRole 枚举类型的变量,用于描述按钮扮演的角色,
     																						它的可选值有 QMessageBox::AcceptRole(同 OK 按钮)、QMessageBox::RejectRole(同 Cancel 按钮)等。
     	
     	int QMessageBox::exec()															使当前对话框弹出,除非用户关闭对话框,否则对话框将一直存在。
     																						此外,当对话框中使用的都是 Qt 提供的按钮时,该方法可以监听用户点击的是哪个按钮,并将该按钮对应的枚举值返回;
     	
     	如果对话框中包含自定义按钮,需要借助 clickedButton() 方法确定用户点击的按钮。
    
  • 5.3、用例1:

     	举个简单的例子:
    
     	#include <QApplication>
     	#include <QMessageBox>
     	#include <QPushButton>
     	#include <QDebug>
     	int main(int argc, char *argv[])
     	{
     		QApplication a(argc, argv);
     		QMessageBox MBox;
     	
     		MBox.setWindowTitle("QMessageBox自定义对话框");
     		MBox.setText("这是一个自定义的对话框");
     		MBox.setIconPixmap(QPixmap("C:\\Users\\xiexuewu\\Desktop\\icon_c.png"));
     	
     		QPushButton *agreeBut = MBox.addButton("同意", QMessageBox::AcceptRole);
     		MBox.exec();
     		
     		if (MBox.clickedButton() == (QAbstractButton*)agreeBut) {
     			//在 Qt Creator 的输出窗口中输出指定字符串
     			qDebug() << "用户点击了同意按钮";
     		}
     	return a.exec();
     	}
     
     	程序运行结果如图 8 所示,点击“同意”按钮后,我们会在 Qt Creator 的输出窗口中看到“用户点击了同意按钮”。
    

6、QMessageBox的信号和槽

  • 6.1、操作 QMessageBox 对话框,最常用的信号函数是 buttonClicked() 函数,最常用的槽函数是 exec() 函数。

  • 6.2、它们的语法格式和功能如下表所示:

     	QMessageBox信号和槽
    
     	信号函数功 能
     void QMessageBox::buttonClicked(QAbstractButton *button)			当用户点击对话框中的某个按钮时,会触发此信号函数,该函数会将用户点击的按钮作为参数传递给槽函数。
    
     int QMessageBox::exec()											弹出对话框,直到用户手动关闭对话框,此对话框将一直存在。
    
  • 6.3、用例:

     	举个简单的例子:
    
     	//main.cpp
     	
     	#include <QApplication>
     	#include <QWidget>
     	#include <QMessageBox>
     	#include <QPushButton>
     	#include <QAbstractButton>
     	
     	QPushButton* agreeBut;
     	QPushButton* disagreeBut;
     	
     	class MyWidget:public QWidget{
     		Q_OBJECT
     	public slots:
     		void buttonClicked(QAbstractButton * butClicked);
     	};
     	
     	void MyWidget::buttonClicked(QAbstractButton * butClicked)
     	{
     		if(butClicked == (QAbstractButton*)disagreeBut){
     		
     		this->close();
     	}
     		
     	int main(int argc, char *argv[])
     	{
     		QApplication a(argc, argv);
     		
     		//创建主窗口
     		MyWidget myWidget;
     		myWidget.setWindowTitle("主窗口");
     		myWidget.resize(400,300);
     		
     		//创建消息框
     		QMessageBox MyBox(QMessageBox::Question,"","");
     		MyBox.setParent(&myWidget);
     		
     		//设置消息框的属性为对话框,它会是一个独立的窗口
     		MyBox.setWindowFlags(Qt::Dialog);
     		MyBox.setWindowTitle("协议");
     		MyBox.setText("使用本产品,请您严格遵守xxx规定!");
     		
     		//自定义两个按钮
     		agreeBut = MyBox.addButton("同意", QMessageBox::AcceptRole);
     		disagreeBut = MyBox.addButton("拒绝", QMessageBox::RejectRole);
     		myWidget.show();
     		
     		//添加信号和槽,监听用户点击的按钮,如果用户拒绝,则主窗口随之关闭。
     		QObject::connect(&MyBox,&QMessageBox::buttonClicked,&myWidget,&MyWidget::buttonClicked);
     		MyBox.exec();
     		
     		return a.exec();
     	}
     	
     	//MyWidget类的定义应该放到 .h 文件中,本例中将其写到 main.cpp 中,程序最后需要添加 #include "当前源文件名.moc" 语句,否则无法通过编译。
     	#include "main.moc"
     	程序执行结果为:
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt的QMessageBox消息弹窗 的相关文章

  • C++:头文件中全局函数的多重定义错误

    该函数是全局的 在头文件中定义 暂时地我想把它留在那里 头文件还构成一个具有内联函数的特定类 其中一个函数调用this全局函数 源文件不包含任何有问题的全局函数 有关错误原因的任何提示吗 如果有人感兴趣的话我可以发布代码 mainwindo
  • 带 Qt 的菜单栏/系统托盘应用程序

    我是 Qt PyQt 的新手 我正在尝试制作一个应用程序 其功能将从菜单栏 系统托盘执行 这里展示了一个完美的例子 我找不到关于如何做到这一点的好资源 有人可以建议吗 Thanks 我认为您正在寻找与QMenu and QMainWindo
  • 如何通过 Qt 创建网络服务 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Qt 5.5 QOpenGLWidget 链接错误未链接任何 openGL 调用

    我尝试使用 Qt 5 5 1 构建一个简单的 OpenGL 应用程序 一切都很好 直到我尝试使用 glClearColor 等 openGL 本机函数调用 该小部件实际上编译并产生黑屏 但在我尝试使用任何 openGL 本机函数后 它甚至不
  • 另一个宏中的 Q_PROPERTY 宏

    如何放置Q PROPERTY另一个宏里面 辅助宏 define SimpleAllinOne member type public void Set member type arg member m member arg member ty
  • 如何在qt中进行异步文件io?

    我想知道如何在qt中实现异步文件io 这在普通的 qt 中是否可以实现 或者有人需要使用另一个库 例如 libuv 来实现这样的事情 我正在查看 QDataStream 但即使它是一个 流 它也不是非阻塞的 我想一种解决方案是制作一个在内部
  • 如何为 qmlRegisterSingletonType 实现单例提供程序?

    我想在 QML 中使用 C 类作为 Singleton 实例 并认为我必须使用 qmlRegisterSingletonType 注册它们 此函数需要一个提供已注册 C 类的实例的函数 我在 Windows 上使用最新的 Qt 5 3 1
  • 如何使用 Qt DOM 通过此语法获取 xml 属性

    我正在使用 Qt DOM XML 解析器 并且遇到了如下属性定义的问题
  • Qt qDebug() 在 Windows shell 中不起作用

    我正在使用一个qDebug Qt 框架的printf屏幕上有东西 当我从 Qt Creator 运行应用程序时它工作得很好 但是当我尝试从 Windows 执行它时cmd它什么也没显示 为什么会发生这种情况 你必须添加 CONFIG con
  • 在 Qt 服务器上验证用户身份

    我正在尝试使用 C QtTcpSocket 为个人项目 多人国际象棋游戏 实现身份验证系统 我的朋友建议了一种验证用户的方法 但我想问是否有更简单或更好的方法 来自 Python 背景 做这个项目主要是为了加深对 C 的理解 我将发布我朋友
  • new 运算符(以及 malloc)无法分配约 450 MB 的内存 [重复]

    这个问题在这里已经有答案了 我正在开发一个程序 该程序在内存中存储大约 2 2 亿个短值的数组 该数据块的分配方式如下 short arrayName new short SIZE OF ARRAY 然后将文件的内容读入内存 在团队中的另一
  • 如何在 OS X 上的 Qt 应用程序中设置应用程序图标,足以进行分发?

    跟进这个答案 https stackoverflow com a 20918932 368896 to 这个问题 https stackoverflow com questions 20909341 what is the fastest
  • QT:删除QGridLayout中QLabel之间的空格

    我将一些具有不同颜色的 QLabels 添加到 QGridLayout 作为 QWidget 的布局 现在我在每个 Qlabel 与下一个 Qlabel 之间有一个间距 我想将其删除 我尝试将标签的边距设置为 0 将 GridLayout
  • QMainWindow 上的 Qt 布局

    我设计了一个QMainWindow with QtCreator s设计师 它由默认的中央小部件 aQWidget 其中包含一个QVBoxLayout以及其中的所有其他小部件 现在我想要的一切就是QVBoxLayout自动占据整个中央小部件
  • 使用 OpenGL 渲染 QImage

    与我相关的其他问题 https stackoverflow com questions 20126354 render qimage from sooffscreenrenderer in qglwidget 我认为更核心的问题是 如何渲染
  • 如何在 Qt 应用程序中嵌入 Python 解释器?

    有没有一种简单的方法可以将 Python 解释器嵌入到 Qt 应用程序中 如果可能的话 我希望有一个跨平台的解决方案 这就是目的PythonQt http pythonqt sourceforge net 它支持 Windows Linux
  • Qt中Q_PROPERTY的意义是什么?

    我无法理解 Q PROPERTY 的用法 Q PROPERTY 如何帮助程序具有防御性 它是干什么用的 我看过这个论坛 但确实无法应用 我已经理解了这个例子 但不明白它的用法 这是一个例子 我能从中得到什么 我知道阅读将赋予只读特权 wri
  • 无法运行 Qt 应用程序:找不到版本“Qt_5”

    我运行 Ubuntu 16 04 LTS 我的问题是我无法运行可以编译的 Qt5 应用程序 这是我尝试运行它时得到的结果 home user Desktop sconfig dist Release GNU Linux SCongif us
  • 即使我在单独的线程中运行,QT GUI 也会冻结

    我有一个小型聊天应用程序 其中使用 SQLite 数据库来存储所有对话 我注意到该应用程序随机冻结 然后我必须最小化和最大化它才能使其再次工作 我认为问题可能是 SQLite 选择 插入导致 gui 冻结 我决定尝试将所有 SQLite 方
  • Qt(在 Windows 上)将权限级别设置为“requireAdministrator”

    我正在使用 Qt Creator 并努力制作 exe文件默认以管理员身份运行 在线阅读所有解决方案我试图将这一行放入我的 pro file QMAKE LFLAGS MANIFESTUAC level requireAdministrato

随机推荐

  • elementUI table组件渲染问题

    elementUI table组件渲染问题 1 问题 问题描述 页面内 使用选项卡 进行内容显示的切换 切换后 原本高度合适的表格出现白边 以及滚动条 检查Dom会发现 el table组件内 发现了一个类名为 is scrolling n
  • 分布式文件存储Minio学习入门

    文章目录 一 分布式文件系统应用场景 1 Minio介绍 Minio优点 2 MinIO的基础概念 3 纠删码ES Erasure Code 4 存储形式 5 存储方案 二 Docker部署单机Minio 三 minio纠删码模式部署 四
  • html空格符号代码及特殊符号

    一 html空格符号代码 nbsp 一个字符的半角的不断行的空格 如果需要在网页中插入多个空格 可以将 nbsp 代码写多遍 ensp 一个字符的半角的空格 也可以将 写多遍来插入多个空格 emsp 两个字符的全角的空格 也可以将 emsp
  • Flask框架入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

    Flask框架 一 简介 Flask是一个非常小的PythonWeb框架 被称为微型框架 只提供了一个稳健的核心 其他功能全部是通过扩展实现的 意思就是我们可以根据项目的需要量身定制 也意味着我们需要学习各种扩展库的使用 二 概要 1 安装
  • 【学习笔记】python实现excel数据处理

    概述 Excel固然功能强大 也有许多函数实现数据处理功能 但是Excel仍需大量人工操作 虽然能嵌入VB脚本宏 但也容易染上宏病毒 python作为解释性语言 在数据处理方面拥有强大的函数库以及第三方库 excel作为主要基础数据源之一
  • MySQL中的事务(隔离性详解)

    1 什么是事务 事务是指逻辑上的一组操作 组成这组操作的各个单元 要么全部成功 要么全部失败 通俗的说一组SQL语句 要么全部执行成功 一条语句出错则全部出粗 在不同的环境中 都可以有事务 对应在数据库中 就是数据库事务 2 为什么使用事务
  • RobotFramework学习系列--(一)

    测试工作需要用到了RobotFramework 之前只是使用 用了一段时间后 决定深入研究一下它 使用平台为Windows Linux 由于是基于Linux 系统方面的测试工作 使用的RobotFramework版本为2 8 5 先简单介绍
  • 强力推荐:Atom入坑必备插件

    You are my warm gloves my cloud beer my sun kissed shirt my day after day dreams 你是我温暖的手套 冰冷的啤酒 带着阳光味道的衬衫 日复一日的梦想 强力推荐 A
  • vue 快速入门--快速使用vue2

    关于mvvm的理解 说到mvvm 就要提到vue的优点了 vue有什么优点呢 更改变量很容易 具有即时性 这是我们广泛所知道的 vue的优点 在原来只有jquery的时候 我们改变一个元素的值的时候 我们需要深入到原代码里 重新绑定元素啦
  • C51数码管显示

    一 数码管简介 LED数码管 数码管是一种简单 廉价的显示器 是由多个发光二极管封装在一起组成 8 字 型的器件 管按段数可分为七段数码管和八段数码管 八段数码管比七段数码管多一个发光二极 管单元 也就是多一个小数点 DP 这个小数点可以更
  • 通过关键词模拟百度搜索并爬取前30页的URL

    想快速获取到百度搜索结果原始URL 一次一次输入搜索太慢了 所以就写了一个小爬虫 效率提升10000倍 平均耗时一个关键词爬取百度搜索结果前30页的链接耗时4秒内 1 你要准备一些搜索词 我的环境下我的搜索词是放在 key file pat
  • ini文件的读取

    ini文件 每行末尾有换行符 每个section之间有一空行 文件 0 id 0 key2 def key start 456 end 78 1 id 1 key1 abc key start 123 end 456 代码示例 includ
  • 2023-数仓建设规范指南

    一 数据模型架构原则 1 数仓分层原则 优秀可靠的数仓体系 往往需要清晰的数据分层结构 即要保证数据层的稳定又要屏蔽对下游的影响 并且要避免链路过长 那么问题来了 一直在讲数仓要分层 那数仓分几层最好 目前市场上主流的分层方式眼花缭乱 不过
  • MySQL中神奇的show命令详解

    show binary logs 列出服务器上的二进制日志文件 show binlog events 显示二进制日志中的事件 show character set 显示所有可用的字符集 show collation 列出服务器支持的排序规则
  • 全网最全的Postman接口自动化测试(史实级攻略)

    背景 该篇文章针对已经掌握 Postman 基本用法的读者 即对接口相关概念有一定了解 已经会使用 Postman 进行模拟请求的操作 当前环境 Window 7 64 Postman 版本 免费版 Chrome App v5 5 3 不同
  • Laravel项目线上服务器docker化部署实战全过程记录指导(转 2021-04-02)

    最近 笔者终于在重重困难之下 完成了自己的第一个laravel项目 有什么感受呢 当然就是laravel虽然体型大 但是功能也更全了 总起来说 是一个在php后端领域值得深入挖掘 日积月累的框架 项目的本地开发和测试都已经完成 那么接下来面
  • MySQL常用函数、关键字解析。

    目录 引言 一 数据库简介 二 SQL语句 三 MySQL常用函数 数学函数 日期函数 MySQL其他命令 四 Navicat快捷键 引言 暂时只想起来这些 有需要补充的或者文章内出现的错误欢迎指正 评论 or 私信 请努力提升自己 划重点
  • 一次另类的由kjournald日志进程引起的磁盘io问题的解决

    http www 5ilinux com 2012 11 kjournald io html 最近linode的服务器做cacti的监控测试 偶尔发现服务器最近几周的io成几何级增长 而同期的cpu负载却发现无太明显的几何级的增长 好在li
  • 电流电压双闭环PID控制以及C语言实现

    对于电流电压双闭环PID控制 我们需要先了解一下PID控制的原理 PID控制器是由比例 P 积分 I 和微分 D 三个部分组成的控制器 用于控制具有惯性和滞后响应的过程 PID控制器需要通过测量误差 计算出控制输出 以便实现系统稳定 在电流
  • Qt的QMessageBox消息弹窗

    Qt的消息弹窗QMessageBox Qt的消息弹窗QMessageBox 1 说明 2 6种消息框 3 QMessageBox StandardButton 枚举类型值 3 1 information消息对话框 3 1 1 informa