[QT]QT教程之实例分析[一]文件 颜色和字体对话框

本文介绍了一个使用Qt实现的标准对话框应用程序。通过该程序可以打开文件对话框选择文件路径、颜色对话框选择颜色以及字体对话框选择字体。文章详细展示了如何在Qt中使用QFileDialog、QColorDialog和QFontDialog,并提供了完整的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

重点知识已近在代码里注释...

请仔细看代码

本文原创

转载请保留此链接 http://blog.youkuaiyun.com/siren0203

头文件

standardialog .h

#ifndef STANDARDIALOG_H #define STANDARDIALOG_H #include <QObject> #include <QDialog> class QGridLayout; class QPushButton; class QLineEdit; class QFrame; class standardialog:public QDialog{ Q_OBJECT public: //构造函数 standardialog(QWidget *parent=0); //私有成员 private: QGridLayout *gridLayout; QPushButton *fontButton; QPushButton *colorButton; QPushButton *fileButton; QLineEdit *fileLineEdit; QLineEdit *fontLineEdit; QFrame *colorFrame; private slots: void slotOpenFileDlg(); void slotOpenColorDlg(); void slotOpenFontDlg(); }; #endif // STANDARDIALOG_H

在看 main.cpp

#include <QDialog> #include <QApplication> #include <QGridLayout> #include <QPushButton> #include <QLineEdit> #include <QFileDialog> #include <QFontDialog> #include <QColorDialog> #include "standardialog.h" standardialog::standardialog(QWidget *parent):QDialog(parent){ //设置窗口标题 setWindowTitle("StanDarDialog"); //实例化布局管理器 gridLayout=new QGridLayout(this); //设置按钮和输入框 fontButton=new QPushButton("font Button"); fileButton =new QPushButton("file Button"); colorButton=new QPushButton("color Button"); fileLineEdit=new QLineEdit(this); fontLineEdit=new QLineEdit(this); fontLineEdit->setText("font line edit"); //实例一个框架 FRAME colorFrame =new QFrame; colorFrame->setFrameShape(QFrame::Box); colorFrame->setAutoFillBackground(true); gridLayout->addWidget(fileButton,0,0); gridLayout->addWidget(fileLineEdit,0,1); gridLayout->addWidget(colorButton,1,0); gridLayout->addWidget(colorFrame,1,1); gridLayout->addWidget(fontButton,2,0); gridLayout->addWidget(fontLineEdit,2,1); //设置间距 gridLayout->setMargin(5); gridLayout->setSpacing(10); //关联信号和槽 connect(fontButton,SIGNAL(clicked()),this,SLOT(slotOpenFontDlg())); connect(fileButton,SIGNAL(clicked()),this,SLOT(slotOpenFileDlg())); connect(colorButton,SIGNAL(clicked()),this,SLOT(slotOpenColorDlg())); //设置布局管理器 setLayout(gridLayout); } //颜色 对话框 void standardialog::slotOpenColorDlg(){ QColor color=QColorDialog::getColor(); if(color.isValid()){ colorFrame->setPalette(QPalette(color)); } } //文件对话框 void standardialog::slotOpenFileDlg(){ QString filename=QFileDialog::getOpenFileName(this,"open this dialog","/"); fileLineEdit->setText(filename.toAscii()); } //字体对话框 void standardialog::slotOpenFontDlg(){ bool ok; QFont font=QFontDialog::getFont(&ok); if(ok){ fontLineEdit->setFont(font); } } int main(int argc,char ** argv){ QApplication app(argc,argv); standardialog dialog; dialog.show(); return app.exec(); }

效果.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值