QT文件对话框,颜色对话框、字体对话框、输入对话框的使用
程序员文章站
2022-07-03 21:44:24
...
QT字体对话框,颜色对话框、字体对话框、输入对话框的使用
程序
文件对话框、字体对话框、颜色对话框
//.h
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QGridLayout>
#include <QPushButton>
#include <QLineEdit>
#include <QFileDialog>
#include <QColorDialog>
#include <QFontDialog>
#include "inputdlg.h"
class Dialog : public QDialog
{
Q_OBJECT
public:
Dialog(QWidget *parent = 0);
~Dialog();
private:
QPushButton *fileBtn;
QLineEdit *fileLineEdit;//文件路径
QGridLayout *mainLayout;
QPushButton *colorBtn;
QFrame *colorFrame;//颜色输出
QPushButton *fontBtn;
QLineEdit *fontLineEdit;//字体输出
QPushButton*inputBtn;
InputDlg*inputDlg;//输入对话框
private slots:
void showFile();
void showColor();
void showFont();
void showInputDlg();
};
#endif // DIALOG_H
//.cpp
#include "dialog.h"
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
setWindowTitle("各种标准对话框的实例");
fileBtn=new QPushButton;
fileBtn->setText("文件标准对话框实例");
fileLineEdit =new QLineEdit;
mainLayout=new QGridLayout(this);
mainLayout->addWidget(fileBtn,0,0);
mainLayout->addWidget(fileLineEdit,0,1);
colorBtn=new QPushButton;
colorBtn->setText("颜色标准对话框实例");
colorFrame=new QFrame;
colorFrame->setFrameShape(QFrame::Box);//颜色
colorFrame->setAutoFillBackground(true);//设置自动填充背景板
mainLayout->addWidget(colorBtn,1,0);
mainLayout->addWidget(colorFrame,1,1);
fontBtn=new QPushButton;
fontBtn->setText("字体标准对话框实例");
fontLineEdit =new QLineEdit;
fontLineEdit->setText("Welcome");
mainLayout->addWidget(fontBtn,3,0);
mainLayout->addWidget(fontLineEdit,3,1);
inputBtn =new QPushButton;
inputBtn->setText("标准输入对话框实例");
mainLayout->addWidget(inputBtn,4,0);
connect(fileBtn,SIGNAL(clicked()),this,SLOT(showFile()));
connect(colorBtn,SIGNAL(clicked()),this,SLOT(showColor()));
connect(fontBtn,SIGNAL(clicked()),this,SLOT(showFont()));
connect(inputBtn,SIGNAL(clicked()),this,SLOT(showInputDlg()));
}
Dialog::~Dialog()
{
}
void Dialog::showFile()//获取选中的文件地址
{
//this,标题,/,文件类别
QString s =QFileDialog::getOpenFileName(this,"open file dialog","/","C++ files(*.cpp);;C files(*.c);;Head files(*.h)");
fileLineEdit->setText(s);
}
void Dialog::showColor()//获取选中的颜色
{
QColor c= QColorDialog::getColor(Qt::blue);//获得颜色板
if(c.isValid())//判定是否有效
{
colorFrame->setPalette(QPalette(c));//设置调色板
}
}
void Dialog::showFont()//获得选中的字体
{
bool ok;
QFont f=QFontDialog::getFont(&ok);//获得字体板
if (ok)
{
fontLineEdit->setFont(f);
}
}
void Dialog::showInputDlg()
{
inputDlg=new InputDlg(this);
inputDlg->show();
}
输入对话框
//.h
#ifndef INPUTDLG_H
#define INPUTDLG_H
#include <QLabel>
#include <QPushButton>
#include <QGridLayout>
#include <QDialog>
class InputDlg : public QDialog
{
Q_OBJECT
public:
InputDlg(QWidget* parent=0);
private:
QLabel*namelabel1;
QLabel*sexlabel1;
QLabel*agelabel1;
QLabel*scorelabel1;
QLabel*namelabel2;
QLabel*sexlabel2;
QLabel*agelabel2;
QLabel*scorelabel2;
QPushButton*nameBtn;
QPushButton*sexBtn;
QPushButton*ageBtn;
QPushButton*scoreBtn;
QGridLayout*mainLayout;
private slots:
void changeName();
void changeSex();
void changeAge();
void changeScore();
};
#endif // INPUTDLG_H
//.cpp
#include "inputdlg.h"
#include <QInputDialog>
#include <QDebug>
InputDlg::InputDlg(QWidget* parent):QDialog(parent)
{
setWindowTitle("标准输入对话框实例");
namelabel1=new QLabel;
namelabel1->setText("姓名:");
namelabel2=new QLabel;
namelabel2->setText("周贺军");
namelabel2->setFrameStyle(QFrame::Panel|QFrame::Sunken);//设置形状阴影
nameBtn=new QPushButton;
nameBtn->setText("修改姓名");
sexlabel1=new QLabel;
sexlabel1->setText("性别:");
sexlabel2=new QLabel;
sexlabel2->setText("男");
sexlabel2->setFrameStyle(QFrame::Panel|QFrame::Sunken);
sexBtn=new QPushButton;
sexBtn->setText("修改性别");
agelabel1=new QLabel;
agelabel1->setText("年龄:");
agelabel2=new QLabel;
agelabel2->setText("21");
agelabel2->setFrameStyle(QFrame::Panel|QFrame::Sunken);
ageBtn=new QPushButton;
ageBtn->setText("修改成绩");
scorelabel1=new QLabel;
scorelabel1->setText("成绩:");
scorelabel2=new QLabel;
scorelabel2->setText("80");
scorelabel2->setFrameStyle(QFrame::Panel|QFrame::Sunken);
scoreBtn=new QPushButton;
scoreBtn->setText("修改成绩");
mainLayout=new QGridLayout(this);
mainLayout->addWidget(namelabel1,0,0);
mainLayout->addWidget(namelabel2,0,1);
mainLayout->addWidget(nameBtn,0,2);
mainLayout->addWidget(sexlabel1,1,0);
mainLayout->addWidget(sexlabel2,1,1);
mainLayout->addWidget(sexBtn,1,2);
mainLayout->addWidget(agelabel1,2,0);
mainLayout->addWidget(agelabel2,2,1);
mainLayout->addWidget(ageBtn,2,2);
mainLayout->addWidget(scorelabel1,3,0);
mainLayout->addWidget(scorelabel2,3,1);
mainLayout->addWidget(scoreBtn,3,2);
mainLayout->setMargin(15);
mainLayout->setSpacing(10);
connect(nameBtn,SIGNAL(clicked()),this,SLOT(changeName()));
connect(sexBtn,SIGNAL(clicked()),this,SLOT(changeSex()));
connect(ageBtn,SIGNAL(clicked()),this,SLOT(changeAge()));
connect(scoreBtn,SIGNAL(clicked()),this,SLOT(changeScore()));
qDebug()<<"aaaaaaa";
}
void InputDlg::changeName()//标准字符串输入对话框
{
qDebug()<<"WOZHIXINGLE";
bool ok;
//this,标题,输出模式,默认输出的文字,&ok
QString text=QInputDialog::getText(this,tr("标准字符串输入对话框"),tr("请输入姓名:"),QLineEdit::Normal,namelabel2->text(),&ok);
if(ok&&!text.isEmpty())
namelabel2->setText(text);
}
void InputDlg::changeSex()//标准条目选择对话框
{
QStringList SexItems;
SexItems<<"男"<<"女";
bool ok;
//this,标题,提示信息,输入条目,默认显示条目序号,指定条目是否可编辑,&ok
QString SexItem=QInputDialog::getItem(this,"标准条目选择对话框","请选择性别",SexItems,0,false,&ok);
if(ok&!SexItems.isEmpty())
sexlabel2->setText(SexItem);
}
void InputDlg::changeAge()//标准Int输入对话框
{
bool ok;
//this,标题,提示信息,默认输出的信息,范围起,范围止,步进值,&ok
int age=QInputDialog::getInt(this,"标准int类型输入对话框","请输入年龄",agelabel2->text().toInt(),0,100,1,&ok);
if(ok)
agelabel2->setText(QString("%1").arg(age));
}
void InputDlg::changeScore()//标准DOUBLE输入对话框
{
bool ok;
//this,标题,提示信息,默认输出的信息,范围起,范围止,步进值,&ok
double score=QInputDialog::getDouble(this,"标准double类型输入对话框","请输入分数",scorelabel2->text().toDouble(),0,100,1,&ok);
if(ok)
scorelabel2->setText(QString("%1").arg(score));
}
实际效果
文件对话框
字体对话框
颜色对话框
标准输入对话框
字符串输入对话框
INT输入对话框
##DOUBLE输入对话框
条目选择对话框
下一篇: 字体对话框的使用
推荐阅读
-
QT文件对话框,颜色对话框、字体对话框、输入对话框的使用
-
字体对话框的使用
-
颜色对话框的使用
-
使用window.prompt()实现弹出用户输入的对话框_javascript技巧
-
使用window.prompt()实现弹出用户输入的对话框_javascript技巧
-
怎样使用trigger方式实现不用点击file类型的input弹出文件选择对话框
-
使用trigger方式实现不用点击file类型的input弹出文件选择对话框_HTML/Xhtml_网页制作
-
怎样使用trigger方式实现不用点击file类型的input弹出文件选择对话框
-
使用trigger方式实现不用点击file类型的input弹出文件选择对话框_HTML/Xhtml_网页制作