对话框(04):【类】QErrorMessage [官翻]

QErrorMessage Class

QErrorMessage类提供了一个错误消息显示对话框。

Header#include < QErrorMessage >
qmakeQT += widgets
InheritsQDialog
Inherited By

详细说明

错误消息小部件由文本标签和复选框组成。该复选框允许用户控制将来是否再次显示相同的错误消息,通常显示翻译成适当本地语言的文本“Show this message again”。

对于生产应用程序,该类可用于显示用户只需查看一次的消息。要像这样使用QErrorMessage,您可以用通常的方式创建对话框,并通过调用showMessage() 槽或将信号连接到它来显示它。

静态qtHandler() 函数使用qInstallMessageHandler() 安装消息处理程序,并创建显示qDebug() 、qWarning() 和qFatal() 消息的QErrorMessage。这在没有控制台可用于显示警告和错误消息的环境中非常有用。

在这两种情况下,QErrorMessage将对挂起的消息进行排队并按顺序显示它们,在用户接受上一条消息后,将立即显示每条新消息。一旦用户指定不再显示消息,它将自动跳过,并且对话框将显示队列中的下一个适当消息。

标准对话框示例演示如何使用QErrorMessage以及其他内置Qt对话框。

img

公共函数

  • QErrorMessage(QWidget *parent = nullptr)
  • virtual ~QErrorMessage()

公共槽

  • void showMessage(const QString &message, const QString &type)
  • void showMessage(const QString &message)

静态公共函数

  • QErrorMessage * qtHandler()

重写的受保护的函数

  • virtual void changeEvent(QEvent *e) override
  • virtual void done(int a) override
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想在 MFC 对话框中使用自定义的 CButton 控件,可以通过重写 CButton 来实现。 以下是示例代码: 1. 创建一个新的 MFC 对话框应用程序。 2. 打开对话框资源,将一个普通按钮控件拖动到对话框中。 3. 右键单击该按钮控件,选择“属性”。 4. 在属性窗口中,将“ID”设为 IDC_MYBUTTON,然后将“样式”设为“自动大小”。 5. 单击“确定”以关闭属性窗口。 6. 在 Visual Studio 中,打开 ClassView 窗口,找到对话框。 7. 右键单击对话框,选择“添加”。 8. 在“添加对话框中,选择“MFC ”,然后选择“CButton”作为基。 9. 为新的 CButton 指定名称(例如 MyButton)和文件名(例如 MyButton.cpp 和 MyButton.h)。 10. 在 MyButton.h 中,将声明更改为以下内容: ```cpp #pragma once #include "afxbutton.h" class MyButton : public CMFCButton { public: MyButton(); virtual ~MyButton(); virtual BOOL PreTranslateMessage(MSG* pMsg); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); DECLARE_MESSAGE_MAP() }; ``` 11. 在 MyButton.cpp 中,将实现更改为以下内容: ```cpp #include "stdafx.h" #include "MyButton.h" #ifdef _DEBUG #define new DEBUG_NEW #endif MyButton::MyButton() { } MyButton::~MyButton() { } BOOL MyButton::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基 return CMFCButton::PreTranslateMessage(pMsg); } void MyButton::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CMFCButton::OnLButtonUp(nFlags, point); } BEGIN_MESSAGE_MAP(MyButton, CMFCButton) ON_WM_LBUTTONUP() END_MESSAGE_MAP() ``` 12. 在对话框的头文件中添加一个 MyButton 成员变量: ```cpp #include "MyButton.h" class CMFCApplication1Dlg : public CDialogEx { // ... private: MyButton m_MyButton; // ... }; ``` 13. 在 OnInitDialog() 函数中,使用以下代码创建 MyButton 控件: ```cpp BOOL CMFCApplication1Dlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 将“关于”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 m_MyButton.Create(_T("My Button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_AUTOSIZE, CRect(10, 10, 100, 30), this, IDC_MYBUTTON); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE } ``` 现在你已经成功地重写了 CButton 并创建了一个自定义按钮控件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值