精华内容
下载资源
问答
  • 最近正在学习Qt,根据实际业务需求花了一天的时候制作了一个消息提示框,仿造126邮箱登录的提示。第一次开源发布代码,还请高手轻拍,并请留下宝贵意见用来完善以及以后制作更多更有趣的插件。
  • qt 透明提示框

    2018-02-07 10:12:11
    qt实现透明提示框 源码编译通过
  • Qt消息框

    2020-03-08 22:46:00
    } MsgDialog::~MsgDialog() { } void MsgDialog::showQuestionMsg() { #if 0 QMessageBox::question( 父窗,消息标题,文字提示消息框中希望出现的按钮,默认焦点在哪个按钮); #endif label->setText(tr("问题...

    //msgDialog.h

    #ifndef MSGDIALOG_H
    #define MSGDIALOG_H
    
    #include <QDialog>
    #include <QLabel>
    #include <QPushButton>
    #include <QGridLayout>
    #include <QMessageBox>
    
    class MsgDialog : public QDialog
    {
        Q_OBJECT
    public:
        MsgDialog(QWidget *parent = 0);
        ~MsgDialog();
    private slots:
        void showQuestionMsg();
        void showInfomationMsg();
        void showWarningMsg();
        void showCriticalMsg();
        void showAboutMsg();
        void showAboutQtMsg();
    
    private:
        QLabel *label;
        QPushButton *questionBtn;
        QPushButton *informationBtn;
        QPushButton *warningBtn;
        QPushButton *criticalBtn;
        QPushButton *aboutBtn;
        QPushButton *aboutQtBtn;
        QGridLayout *mainLayout;
    };
    
    #endif // MSGDIALOG_H
    

    //msgDialog.cpp

    #include "msgdialog.h"
    
    MsgDialog::MsgDialog(QWidget *parent)
        : QDialog(parent)
    {
        setWindowTitle(tr("标准消息对话框"));
        label = new QLabel;
        label->setText(tr("请选择一种消息框"));
        questionBtn = new QPushButton;
        questionBtn->setText(tr("QuestionMsg"));
        informationBtn = new QPushButton;
        informationBtn->setText(tr("InformationMsg"));
        warningBtn = new QPushButton;
        warningBtn->setText(tr(" WarningMsg"));
        criticalBtn = new QPushButton;
        criticalBtn->setText(tr("CriticalMsg"));
        aboutBtn = new QPushButton;
        aboutBtn->setText(tr("AboutMsg"));
        aboutQtBtn = new QPushButton;
        aboutQtBtn->setText(tr("AboutQtMsg"));
        //不布局
        mainLayout = new QGridLayout(this);
        mainLayout->addWidget(label,0,0,1,2);
        mainLayout->addWidget(questionBtn,1,0);
        mainLayout->addWidget(informationBtn,1,1);
        mainLayout->addWidget(warningBtn,2,0);
        mainLayout->addWidget(criticalBtn,2,1);
        mainLayout->addWidget(aboutBtn,3,0);
        mainLayout->addWidget(aboutQtBtn,3,1);
        //信号与槽
        connect(questionBtn,SIGNAL(clicked()),this,SLOT(showQuestionMsg()));
        connect(informationBtn,SIGNAL(clicked()),this,SLOT(showInfomationMsg()));
        connect(warningBtn,SIGNAL(clicked()),this,SLOT(showWarningMsg()));
        connect(criticalBtn,SIGNAL(clicked()),this,SLOT(showCriticalMsg()));
        connect(aboutBtn,SIGNAL(clicked()),this,SLOT(showAboutMsg()));
        connect(aboutQtBtn,SIGNAL(clicked()),this,SLOT(showAboutQtMsg()));
    }
    
    MsgDialog::~MsgDialog()
    {
    
    }
    
    void MsgDialog::showQuestionMsg()
    {
    #if 0
        QMessageBox::question(
                    父窗,消息标题,文字提示,消息框中希望出现的按钮,默认焦点在哪个按钮);
    #endif
        label->setText(tr("问题消息框"));
        switch(QMessageBox::question(this,tr("question"),tr("您已经修改完成,是否要结束程序?"),QMessageBox::Ok | QMessageBox::Cancel,
                                     QMessageBox::Ok))
        {
        case QMessageBox::Ok:
            label->setText(tr("Question is ok"));
            break;
        case QMessageBox::Cancel:
            label->setText(tr("Question is Cancel"));
            break;
        default:
            break;
        }
    }
    
    void MsgDialog::showInfomationMsg()
    {
    #if 0
        QMessageBox::information(
                    父窗,消息标题,文字提示,消息框中希望出现的按钮,默认焦点在哪个按钮);
    #endif
    
        label->setText(tr("information 消息框"));
        switch(QMessageBox::information(this,tr("information"),tr("注释信息"),QMessageBox::Ok | QMessageBox::Cancel,
                                     QMessageBox::Ok))
        {
        case QMessageBox::Ok:
            label->setText(tr("information is ok"));
            break;
        case QMessageBox::Cancel:
            label->setText(tr("information is Cancel"));
            break;
        default:
            break;
        }
    }
    
    void MsgDialog::showWarningMsg()
    {
    #if 0
        QMessageBox::warning(
                    父窗,消息标题,文字提示,消息框中希望出现的按钮,默认焦点在哪个按钮);
    #endif
    
        label->setText(tr("warning 消息框"));
        switch(QMessageBox::warning(this,tr("information"),tr("修改的内容未保存,是否保存?"),QMessageBox::Save|QMessageBox::Discard | QMessageBox::Cancel,
                                     QMessageBox::Save))
        {
        case QMessageBox::Save:
            label->setText(tr("warning is Save"));
            break;
        case QMessageBox::Discard:
            label->setText(tr("warning is Discard"));
            break;
        case QMessageBox::Cancel:
            label->setText(tr("warning is Cancel"));
            break;
        default:
            break;
        }
    }
    
    void MsgDialog::showCriticalMsg()
    {
    #if 0
        QMessageBox::critical(
                    父窗,消息标题,文字提示,消息框中希望出现的按钮,默认焦点在哪个按钮);
    #endif
    
        label->setText(tr("critical 消息框"));
        switch(QMessageBox::critical(this,tr("critical"),tr("critical 消息框测试"),QMessageBox::Ok | QMessageBox::Cancel,
                                     QMessageBox::Ok))
        {
        case QMessageBox::Ok:
            label->setText(tr("critical is ok"));
            break;
        case QMessageBox::Cancel:
            label->setText(tr("critical is Cancel"));
            break;
        default:
            break;
        }
    }
    
    void MsgDialog::showAboutMsg()
    {
    #if 0
        QMessageBox::about(
                    父窗,消息标题,文字提示);
    #endif
    
        label->setText(tr("about 消息框"));
        QMessageBox::about(this,tr("about"),tr("about 消息框测试"));
    
    }
    
    void MsgDialog::showAboutQtMsg()
    {
    #if 0
        QMessageBox::about(
                    父窗,消息标题);
    #endif
    
        label->setText(tr("aboutQt 消息框"));
        QMessageBox::aboutQt(this,tr("aboutQt"));
    
    }
    

    //dialog.h

    #ifndef DIALOG_H
    #define DIALOG_H
    
    #include <QDialog>
    #include "msgdialog.h"
    
    class Dialog : public QDialog
    {
        Q_OBJECT
    
    public:
        Dialog(QWidget *parent = 0);
        ~Dialog();
    private:
        QPushButton *MsgBtn;
        QGridLayout *mainLayout;
        MsgDialog *msgDlg;
    
    private slots:
        void showMsgDlg();
    };
    
    #endif // DIALOG_H
    

    //dialog.cpp

    #include "dialog.h"
    
    Dialog::Dialog(QWidget *parent)
        : QDialog(parent)
    {
        MsgBtn = new QPushButton;
        MsgBtn->setText(tr("标准消息对话框实例"));
    
        mainLayout = new QGridLayout(this);
        mainLayout->addWidget(MsgBtn,3,1);
    
        connect(MsgBtn,SIGNAL(clicked()),this,SLOT(showMsgDlg()));
    
    }
    
    Dialog::~Dialog()
    {
    
    }
    
    void Dialog::showMsgDlg()
    {
        msgDlg = new MsgDialog();
        msgDlg->show();
    }
    

     

    展开全文
  • Qt消息提醒

    千次阅读 2018-03-01 14:37:40
    MessageDialogMessageDialog可以在用户操作时,给出一个提示性信息。相关的使用示例如下: MessageDialog{ title: "Message Dialog" icon: Standard...

    MessageDialog

    MessageDialog可以在用户操作时,给出一个提示性信息。相关的使用示例如下:

    MessageDialog{
            title:                                      "Message Dialog"
            icon:                                       StandardIcon.Information
            text:                                       "This is a message dialog demo."
            detailedText:                               "This use for show dialog or hide dialog."
            standardButtons:                            StandardButton.Yes | StandardButton.Cancel
            Component.onCompleted:                      visible = true
    
            onYes: {
                    console.log("Yes is choosed.")
            }
    
            onRejected: {
                    console.log("Cancel button is clicked.")
            }
        }

    展开全文
  • Qt qml 自定义消息提示框

    千次阅读 2017-10-28 16:12:16
    Qt qml 自定义消息提示框   QtQuick有提供比较传统的信息提示框MessageDialog,但是实际开发过程并不 太能满足我们的需求。下面是根据controls2模块中Dialog控件自定义的简单的信息提示框。 可以根据信息的多少...

    Qt qml 自定义消息提示框

      QtQuick有提供比较传统的信息提示框MessageDialog,但是实际开发过程并不
    太能满足我们的需求。下面是根据controls2模块中Dialog控件自定义的简单的信息提示框。

    可以根据信息的多少来自动调节信息框的大小:

    这里写图片描述

    这里写图片描述

    这里写图片描述

    下面上代码:
    

    MsgDialog.qml

    import QtQuick 2.6
    import QtQuick.Window 2.2
    import QtQuick.Controls 2.2
    import QtQuick.Layouts 1.3
    
    Item {
        id: root
        anchors.centerIn: parent
        //提示框内容
        property alias tipText: msg.text
        //提示框颜色
        property string backGroundColor: "white"
        property Item parentItem : Rectangle {}
    
        //Dialog header、contentItem、footer之间的间隔默认是12
        // 提示框的最小宽度是 100
        width: {
            if(msg.implicitWidth < 100 || msg.implicitWidth == 100)
                return 100;
            else
                return msg.implicitWidth > 300 ? 300 + 24 : (msg.implicitWidth + 24);
        }
        height: msg.implicitHeight + 24 + 100
    
        Dialog {
            id: dialog
            width: root.width
            height: root.height
            modal: true
            background: Rectangle {
                color: backGroundColor
                anchors.fill: parent
                radius: 5
            }
            header: Rectangle {
                width: dialog.width
                height: 50
                border.color: backGroundColor
                radius: 5
                Image {
                    width: 40
                    height: 40
                    anchors.centerIn: parent
                    source: "/images/warning_48.png"
                }
            }
            contentItem: Rectangle {
                border.color: backGroundColor
                color: backGroundColor
                Text {
                    anchors.fill: parent
                    anchors.centerIn: parent
                    font.family: "Microsoft Yahei"
                    color: "gray"
                    text: tipText
                    wrapMode: Text.WordWrap
                    verticalAlignment: Text.AlignVCenter
                    horizontalAlignment: Text.AlignHCenter
    
                }
            }
            footer: Rectangle {
                width: msg.width
                height: 50
                border.color: backGroundColor
                color: backGroundColor
                radius: 5
                Button {
                    anchors.centerIn: parent
                    width: 80
                    height: 30
                    background: Rectangle {
                        anchors.centerIn: parent
                        width: 80
                        height: 30
                        radius: 5
                        border.color: "#0f748b"
                        border.width: 2
                        color: backGroundColor
                        Text {
                            anchors.centerIn: parent
                            font.family: "Microsoft Yahei"
                            font.bold: true
                            color: "#0f748b"
                            text: "OK"
                        }
                    }
                    onClicked: {
                        dialog.close();
                    }
                }
            }
        }
    
        //利用Text 的implicitWidth属性来调节提示框的大小
        //该Text的字体格式需要与contentItem中的字体一模一样
        Text {
            id: msg
            visible: false
            width: 300
            wrapMode: Text.WordWrap
            font.family: "Microsoft Yahei"
            verticalAlignment: Text.AlignVCenter
            horizontalAlignment: Text.AlignHCenter
        }
    
        function openMsg() {
            root.x = (parent.width - dialog.width) * 0.5
            root.y = (parent.height - dialog.height) * 0.5
            dialog.open();
        }
    }

    在做这个控件的时候发现了一个问题,就是当我们利用Loader加载控件并且该控件使用了controls2模块时,把loader的asynchronous属性设置为true的时候,会报错”Object destroyed during incubation”,目前还没有找到解决的办法,有知道的同学可以交流一下。。。。

    注意:作者使用的是Qt5.9版本,文章中使用的有些属性是从Qt5.8才开始有的!

    源码下载: http://download.csdn.net/download/a844651990/10042941

    展开全文
  • Qt 消息框应用

    2014-10-02 18:42:40
    Qt中与用户做信息交互的消息框用起来非常简单方便,如:消息、警告、错误、关于、提问、用户自定义等等!这些对话框都是QMessageBox类提供的,除用户自定义的对话框外其它的对话框均可以直接引用,它们都是类提供的...
     Qt中与用户做信息交互的消息框用起来非常简单方便,如:消息、警告、错误、关于、提问、用户自定义等等!这些对话框都是QMessageBox类提供的,除用户自定义的对话框外其它的对话框均可以直接引用,它们都是类提供的静态函数。这些静态函数前几个形参分别为:父对象指针、标题、提示信息,其余的形参用户可以根据不同类型的对话框,根据需要定制,并制定默认被选中的按钮,按钮的类型通过QMessageBox类提供的枚举值来确定如:QMessageBox::Ok(显示“Ok”按钮),当用户选择对应的按钮时,函数会返回用户选择的该枚举值,供程序区别处理。
    

        闲话少说,上程序!

        一、基于QMessageBox的静态函数对话框

    void Dialog::qtAbout()

    {
        QMessageBox::about(this,"About",tr("This is about message box!"));
    }
    void Dialog::qtAboutQt()
    {
        QMessageBox::aboutQt(this,"About Qt");
    }
    void Dialog::qtQuestion()
    {
        switch(QMessageBox::question(this,"Question",
                              tr("This is a question dialog,
    Please choose your select!"),
                              QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Cancel))
        {
        case QMessageBox::Ok:
            this->setWindowTitle("Ok Selected!");
            break;
        case QMessageBox::Cancel:
            this->setWindowTitle("Cancel Selected!");
            break;
        default:
            break;
        }
    }
    void Dialog::qtInformation()
    {
        QMessageBox::information(this,"Information dialog",tr("Timeout,You can try again later!"));
    }
    void Dialog::qtCritical()
    {
        QMessageBox::critical(this,"Critical",tr("Critial error!"));
    }
    void Dialog::qtWarning()
    {
        switch(QMessageBox::warning(this,"Warning dialog",tr("Do you want to save changes?"),
                             QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel,QMessageBox::Save))
        {
        case QMessageBox::Save:
            this->setWindowTitle("Save selected!");
            break;
        case QMessageBox::Discard:
            this->setWindowTitle("Discard selected!");
            break;
        case QMessageBox::Cancel:
            this->setWindowTitle("Cancel selected!");
            break;
        default:
            break;
        }
    }
    在QDialog的派生类中定义了槽来测试对话框,同时又实例化了相应的按钮对象,将按钮对象的Clicked()信号与这些槽连接起来,实现了相应功能展示。
        二、基于QMessageBox的用户自定义对话框
    void Dialog::qtCustom()
    {
        QMessageBox customMessage;//实例化QMessageBox对象
        customMessage.setWindowTitle("Custom message box!");//设置对话框标题
        QPushButton *testButton = customMessage.addButton(tr("Test"),QMessageBox::ActionRole);//插入按钮
        QPushButton *closeButton = customMessage.addButton(tr("Close"),QMessageBox::ActionRole);//插入按钮
        QPushButton *cancelButton = customMessage.addButton(QMessageBox::Cancel);//插入按钮
        customMessage.setIconPixmap(QPixmap("./images/qtcreator.png"));//为对话框设置图片
        customMessage.setText("This is a custom message box!");//为对话框设置信息提示
        customMessage.exec();//进入对话框消息循环显示对话框,等待用户选择
        if (customMessage.clickedButton()== testButton)//判断用户操作
        {
            this->setWindowTitle("Test Button was Clicked!");
        }
        else if (customMessage.clickedButton()== closeButton)//判断用户操作
        {
            this->setWindowTitle("Close Button was Clicked!");
        }
        else if (customMessage.clickedButton()== cancelButton)//判断用户操作
        {
            this->setWindowTitle("Cancel Button was Clicked!");
        }
    }
     
     
     
     
     
    两种对话框的使用方法介绍结束了,仔细的总结一下,结论就是:怎么会这么简单、好用呢???
    展开全文
  • 最近闲来无事写了几个消息提示框,无他,就因为觉得Qt自带的消息提示框特别丑... QPSMessageBox QPSMessageBox继承自QObject,里面所有的内容都是自写的完全与QMessageBox无关,之所以叫这名字也是为了与Qt之...
  • QT 消息框大全

    千次阅读 2011-11-24 13:30:49
     label->setText(tr(" 关于 Qt 消息框 "));  return; } void MessageBox::slotCustom() {  QMessageBox customMsgBox;  customMsgBox.setWindowTitle(tr("自定义消息框"));  QPushButton *...
  • 最近闲来无事写了几个消息提示框,无他,就因为觉得Qt自带的消息提示框特别丑... QPSMessageBox QPSMessageBox继承自QDialog,里面所有的内容基本跟QMessageBox差不多,用法也差不多,区别就是改掉了样式变成...
  • qt淡化提示框设计

    2020-10-27 09:43:35
    实现方法: ...QPropertyAnimation以Qt属性做差值,作为属性值存储在QVariants中,该类继承自QVariantAnimation,并支持基类相同的元类型动画。 实现代码如下: void showHintLabel(QWidget *parent,
  • 自己封装的函数,可以以直接使用 //参数:标题 提示信息 左提示 右 提示 QMessageBox::StandardButton MyMessageBox(QString title, QString message,QString text...{//封装 显示中文提示框 QMessageBox megBox(p...
  • QT 提示框

    2020-09-18 17:10:12
    int ret = QMessageBox::question(this, "退出程序", "您是否确认退出\r\n"); if(ret == QMessageBox::StandardButton::Yes){ }else{ } eg: information QMessageBox::information(NULL, "Title", "Content...
  • Qt 之透明提示框

    万次阅读 2016-03-31 20:29:18
    简述经常使用企鹅的小伙伴一定对登录失败的提示框很熟悉,主要涉及窗口透明并添加图标、提示信息、关闭按钮的显示等。我们可以利用QWidget创建一个提示框,然后通过样式设置我们想要的效果。简述 效果 源码 样式效果...
  • QT 信息提示框QMessageBox用法

    千次阅读 2019-07-08 16:49:10
    这个博客写了大部分可能会用到的QMessageBox的用法。 把信息选项改为显示中文: QMessageBox box(QMessageBox::Information, "选择"," 选择 1 还是 2?...box.setStandardButtons(QMessageBox::...
  • Qt气泡提示框(自动消失)

    千次阅读 2020-05-28 11:09:03
    #ifndef FUNCTION_MESSAGE_WIDGET_H ...QT_BEGIN_NAMESPACE class QPaintEvent; QT_END_NAMESPACE class FunctionMessageWidget : public QWidget { Q_OBJECT public: explicit FunctionMessageWidget(Q.
  • 起因:一般qt界面的消息框必须居于父界面的中间,而且需要有多个消息框时,不必每次都new一个,可以做到一个函数中,创建个临时的对象就行,下面直接贴出Demo: #ifndef MAINWINDOW_H #define MAINWINDOW_H #...
  • Qt中自定义MessageBox提示框

    千次阅读 2016-11-18 11:47:35
    概述: 在做项目时,我们经常会用到QMessageBox这个控件,但有时候Qt自己提供的...消息提示框的控件类,有什么不对的地方,希望大家一起交流! 头文件: /** * @brief 自定义MessageBox * @file custommessagebox.h *
  • 首先说下应用场景,当我们需要运行一些耗时操作的时候,如果界面不给出任何提示的话,给用户体验很不好,有时候还会因为一些误操作导致一些问题的出现,要实现这个效果需要分成两部分: 1.提示界面的实现 提示界面的...
  • Qt类似QQ提示框

    2019-04-28 12:37:14
    https://blog.csdn.net/xj626852095/article/details/11542487
  • 17 QT - 自定义消息框

    2019-10-18 15:04:31
    Qt 支持模态对话框和非模态对话框。 模态与非模态的实现: 使用QDialog::exec()实现应用程序级别的模态对话框 使用QDialog::open()实现窗口级别的模态对话框 使用QDialog::show()实现非模态对话框。 模态对话框 Qt...
  • Qt状态机框架

    千次阅读 2017-03-16 10:43:47
     Qt中的状态机框架为我们提供了很多的API和类,使我们能更容易的在自己的应用程序中集成状态动画。这个框架是和Qt的元对象系统机密结合在一起的。比如,各个状态之间的转换是通过信号触发的,状态可被配置为用来...
  • QT QML自定义等待提示框

    千次阅读 2017-07-24 15:19:50
    QT QML自定义等待提示框最近项目需要一个等待提示框,因为是使用QT写的项目,没有找到这方面资料,就自己封装了一个简单的demo,记录下来,以便以后使用。 使用的qml 中 Canvas自定义画图仿钉钉中的等待提示框。 ...
  • QMessageBox::information(this, QString::fromLocal8Bit("警告"),QString::fromLocal8Bit("已经是第一张了!"));
  • 实现Qt提示框淡出、飞出、缩小等关闭窗口动画,除此之外还包含了阴影、背景着色、滤镜等特效。
  • QT弹出消息框

    万次阅读 2015-10-09 14:41:20
    QMessageBox::information(this, QString::fromLocal8Bit("警告"),QString::fromLocal8Bit("有种你再点击一次"));
  • qt 按钮和提示框等配合的用法 老外的教程 自己做成功了

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,965
精华内容 5,986
关键字:

qt消息提示框