QDialog 的 setWindowFlags 问题

weizhouyue0119 2012-12-25 04:58:30
我在一个QDialog里,用上下文菜单(右键)打开另一个QDialog:

m_ui->tableView->setContextMenuPolicy(Qt::ActionsContextMenu);
setShowFields = new QAction(tr("Customize show fields"),this);
connect(setShowFields, SIGNAL(triggered()), this, SLOT(showFields()));
m_ui->tableView->addAction(setShowFields);

然后在showFields()方法中:
A a(this);
在A的构造函数里:
m_ui->setupUi(this);
默认的窗体右上角是帮助和关闭按钮,但是我想把帮助按钮去掉,只保留关闭按钮。
setWindowFlags(Qt::WindowCloseButtonHint);

但是结果这个dialog的边框都不见了。



有人知道是为什么吗?多谢!

如果不是通过上下文菜单(右键菜单)打开的dialog,就可以修改窗口属性。
...全文
768 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kidscannan 2013-01-11
  • 打赏
  • 举报
回复
楼主怎么解决的,我现在也遇到这样的问题,能不能分享一下。谢谢
weizhouyue0119 2012-12-26
  • 打赏
  • 举报
回复
问题已经解决
__阿飞__ 2012-12-26
  • 打赏
  • 举报
回复
抱歉,上一个回答有误,没看清楼主的意思,楼主参考这里: http://blog.csdn.net/jiong_1988/article/details/7785270 用:
setWindowFlags(windowFlags()&~Qt::WindowCloseButtonHint&~Qt::WindowContextHelpButtonHint);
引用 楼主 weizhouyue0119 的回复:
我在一个QDialog里,用上下文菜单(右键)打开另一个QDialog: m_ui->tableView->setContextMenuPolicy(Qt::ActionsContextMenu); setShowFields = new QAction(tr("Customize show fields"),this); connect(setShowFiel……
__阿飞__ 2012-12-26
  • 打赏
  • 举报
回复
兄弟试下这个:
setWindowFlags(Qt::FramelessWindowHint);
weizhouyue0119 2012-12-26
  • 打赏
  • 举报
回复
有人知道吗?急,多谢!
#include "accesscontrolsystem.h" AccessControlSystem::AccessControlSystem(QWidget *parent, Qt::WFlags flags) : QMainWindow(parent, flags) { ui.setupUi(this); initialization(); validateUserLogin(); } AccessControlSystem::~AccessControlSystem() { } /*------------------------------------------- * * 初始化 * ---------------------------------------------*/ void AccessControlSystem::initialization() { this->showFullScreen(); this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint); verifcation = new VerificationDlg(0); /*------------------------------------------- * 固定窗口大小 ---------------------------------------------*/ this->setFixedSize(this->geometry().size()); switchUser = new SwitchUserDlg(this); systemSetting = new SystemSettingDlg(this); cardIssuer = new CardIssuerDlg(this); rechargePostponed = new RechargePostponedDlg(this); cardDownload = new CardDownloadDlg(this); rateSetting = new RateSettingDlg(this); onlineMonitoring = new OnlineMonitoringDlg(this); ui.rightLogoLabel->setPixmap(QPixmap("Resources\\rightLogo.png")); } /*------------------------------------------- * * 验证用户登录 * ---------------------------------------------*/ void AccessControlSystem::validateUserLogin() { /*------------------------------------------- * 密码狗验证 ---------------------------------------------*/ //codeValidate.startValidate(); if (verifcation->exec() == QDialog::Accepted) { this->show(); this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint); }else { exit(1); } } /*------------------------------------------- * * 退出系统 * ---------------------------------------------*/ void AccessControlSystem::on_close_clicked() { //写退出对话框 exit(1); } /*------------------------------------------- * * 最小化 * ---------------------------------------------*/ void AccessControlSystem::on_min_clicked() { this->showMinimized(); } /*------------------------------------------- * * 最大化 * ---------------------------------------------*/ void AccessControlSystem::on_max_clicked() { this->showNormal(); } /*------------------------------------------- * * 切换用户 * ---------------------------------------------*/ void AccessControlSystem::on_switchUserButton_clicked() { switchUser->exec(); } /*------------------------------------------- * * 系统设置 * ---------------------------------------------*/ void AccessControlSystem::on_systemSettingButton_clicked() { systemSetting->exec(); } /*------------------------------------------- * * 卡片发行 * ---------------------------------------------*/ void AccessControlSystem::on_cardIssuerButton_clicked() { cardIssuer->exec(); } /*------------------------------------------- * * 充值延期 * ---------------------------------------------*/ void AccessControlSystem::on_rechargePostponedButton_clicked() { rechargePostponed->exec(); } /*------------------------------------------- * * 卡片下载 * ---------------------------------------------*/ void AccessControlSystem::on_cardDownloadButton_clicked() { cardDownload->exec(); } /*------------------------------------------- * * 费率计算 * ---------------------------------------------*/ void AccessControlSystem::on_rateSettingButton_clicked() { rateSetting->exec(); } /*------------------------------------------- * * 在线监控 * ---------------------------------------------*/ void AccessControlSystem::on_onlineMonitoringButton_clicked() { this->hide(); onlineMonitoring->showFullScreen(); if (onlineMonitoring->exec() == QDialog::Rejected) { this->show(); } } /*------------------------------------------- * * 人事信息 * ---------------------------------------------*/ void AccessControlSystem::on_personnelQueryButton_clicked() { } /*------------------------------------------- * * 提取记录 * ---------------------------------------------*/ void AccessControlSystem::on_extractRecordButton_clicked() { }

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧