QMessageBox判断点击了哪个按钮,确定或者取消

问题描述:
最近做一个QT小项目,需要在登陆界面的关闭按钮,增加一个是否确认关闭的对话框。
问题解决:
使用QMessageBox,制作对话框。

	QPushButton *okbtn = new QPushButton(QString::fromLocal8Bit("确定"));
	QPushButton *cancelbtn = new QPushButton(QString::fromLocal8Bit("取消"));
	QMessageBox *mymsgbox = new QMessageBox; 

	mymsgbox->setIcon(QMessageBox::Warning);
	mymsgbox->setWindowTitle(QString::fromLocal8Bit("提示"));
	mymsgbox->setText(QString::fromLocal8Bit("确定关闭,登陆界面么?"));
	mymsgbox->addButton(okbtn, QMessageBox::AcceptRole);
	mymsgbox->addButton(cancelbtn, QMessageBox::RejectRole);	
	mymsgbox->show();
	
	mymsgbox->exec();//阻塞等待用户输入
	if (mymsgbox->clickedButton()==okbtn)//点击了OK按钮
	{
		this->close();
	}
	else{
	
	}


在这里插入图片描述

  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: QMessageBoxQt框架中用于显示对话框的类,它提供了默认的按钮样式,但我们可以通过一些方法来改变按钮的样式。 首先,我们可以通过设置QMessageBox按钮布局方式来改变按钮的样式。QMessageBox有两种布局方式:StandardButton和ButtonLayout。StandardButton方式下,按钮根据其标准按钮类型自动布局,而ButtonLayout方式下,我们可以手动设置每个按钮的位置和样式。 其次,我们可以通过自定义按钮来改变按钮的样式。我们可以选择继承QMessageBox,并在自定义的类中重写按钮的绘制函数,从而改变按钮的外观。在绘制函数中,我们可以使用Qt提供的绘图函数或自定义的绘图方式来实现我们想要的按钮样式。 除了以上方法,我们还可以通过修改QSS样式表来改变按钮的样式。QMessageBox可以通过setStyleSheet()方法来设置样式表。我们可以在样式表中使用CSS选择器来选择按钮,并修改其样式属性,例如修改背景颜色、字体样式、边框样式等。 总结起来,要改变QMessageBox按钮的样式,可以通过设置其布局方式、自定义按钮的绘制函数或修改样式表来实现。选择合适的方法取决于具体的需求和使用情景。希望这些信息对您有所帮助! ### 回答2: QMessageBoxQt框架中的一个对话框类,可以用于显示提示、警告、错误等信息,并提供按钮供用户进行选择。 如果我们想要改变QMessageBox按钮的样式,我们可以通过设置QSS(Qt Style Sheet)来实现。QSS是Qt框架中一种类似于CSS的样式表语言,可以用于设置控件的外观和行为。 首先,我们需要创建一个QMessageBox对象,并设置对应的标题、文本内容和按钮类型。例如,我们可以使用QMessageBox::information()静态函数创建一个信息提示框,然后设置按钮类型为QMessageBox::Ok和QMessageBox::Cancel。 接下来,我们可以通过设置QMessageBox对象的样式表来改变按钮的样式。可以使用QPushButton类型选择器来选择按钮,并设置不同的样式属性,如背景颜色、字体颜色、边框等。例如,可以使用background-color属性来设置按钮的背景颜色,color属性来设置按钮的字体颜色,border属性来设置按钮的边框样式。 最后,我们需要调用QMessageBox对象的exec()函数来显示对话框,并等待用户的响应。当用户点击按钮时,我们可以通过判断按钮的返回值来执行相应的操作。例如,如果用户点击了“确定按钮,则返回QMessageBox::Ok,如果点击了“取消按钮,则返回QMessageBox::Cancel。 总结起来,我们可以通过设置QMessageBox对象的样式表来改变按钮的样式,从而实现自定义的按钮外观。但需要注意的是,样式表的设置需要在QMessageBox对象显示之前进行。 ### 回答3: QMessageBox是一个用于显示消息、警告、错误等对话框的类。但是,QMessageBox按钮样式是根据操作系统的风格自动设置的,无法直接通过API来改变按钮样式。不过,我们可以通过使用样式表(StyleSheet)来间接改变按钮的外观。具体做法如下: 首先,我们需要将QMessageBox按钮设置为不自动布局(AutoDefault)的模式,这样才能够通过样式表来设置按钮的外观。设置方法如下: ```python msgBox = QMessageBox() msgBox.setStandardButtons(QMessageBox.Cancel | QMessageBox.Ok) msgBox.setDefaultButton(QMessageBox.Ok) msgBox.setAutoDefault(False) ``` 接下来,我们可以通过设置样式表来改变按钮的外观。样式表是一种基于CSS的语法,可以用于设置Qt控件的外观。下面是一个例子,将按钮的背景颜色设置为蓝色,文字颜色设置为白色,边框设置为圆角: ```python styleSheet = """ QPushButton { background-color: blue; color: white; border-radius: 5px; } """ msgBox.setStyleSheet(styleSheet) ``` 最后,我们需要调用msgBox.exec_()来显示对话框: ```python msgBox.exec_() ``` 这样,就可以通过样式表来改变QMessageBox按钮样式了。需要注意的是,样式表的设置方式会影响整个应用程序的外观,如果只想改变某个对话框的按钮样式,可以使用setStyleSheet()方法来单独设置QMessageBox的样式表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值