QT踩坑之第三天(基本控件1)

目录:
1、Qt资源图标添加和使用
2、Buttons按钮
2.1QPushButton
2.2QToolButton
2.3QRadioButton
2.4QCheckBox
3、InputWidgets输入控件
3.1Combobox
3.2FontComboBox
3.3LineEdit
3.4QTextEdit
3.5SpinBox+DoubleSpinBox
3.6TimeEdit+DateEdit+TimeDateEdit
3.7Dial ScollBar Slider
4、DisplayWidgets显示控件
4.1Label
4.2TextBrowser
4.3lcdNumber
4.4progressBar

1、Qt资源图标添加和使用

在Qt中与程序相关的资源在被指定在qrc文件中,qrc文件包含程序中需要使用的资源以及资源的路径(添加资源文件)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
拷贝图片文件到工程目录
添加图片到资源内
在这里插入图片描述
分别添加png ico前缀
在这里插入图片描述
分别给ico png添加文件
在这里插入图片描述
在这里插入图片描述
qmake让资源文件生效
执行qmake,让qrc文件在该工程中生效
在这里插入图片描述
修改应用程序窗口ICO
在这里插入图片描述
在这里插入图片描述
如果需要再次编辑资源文件
在这里插入图片描述
发布程序添加ICO
可执行文件生成图标 pro文件中添加
RC_ICONS += ./image/ico/qt‐logo.ico

2、Buttons按钮

QT中有六种按钮组件,分别是按压式按钮QPushButton、工具按钮QToolButton、单选按钮QRadioButton、多选按钮QCheckBox、命令链接按钮QCommandLinkButton、按钮盒QButtonBox。
2.1QPushButton
pushButton是Qt中最常用的按钮,主要使用的函数为以下几个
SetText //设置文字
SetMenu //设置菜单
Clicked //信号 代码:
buttonDemo (修改连接状态、设置图片 、弹出式菜单)

void MainWindow::on_pushButton_clicked()
 {    
 if(!deviceState)   
  {        
 deviceState = true;        
 ui‐>pushButton‐>setText(QStringLiteral("连接设备"));  //  MSVC编译器才有这个问题     
}    
 else    
 {         
deviceState = false;       
  ui‐>pushButton‐>setText(QStringLiteral("断开设备")); 
}
}

在这里插入图片描述
在这里插入图片描述

  ui‐>pushButton_2‐>setIcon(QIcon(":/png/image/png/itunesicon.png"));

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
实现如下弹出式菜单功能:
在这里插入图片描述

    QMenu *pMenu = new QMenu(this);
    pMenu‐>addAction("First item");
    pMenu‐>addAction("Second item");
    pMenu‐>addSeparator();
    pMenu‐>addAction("third &item");
    pMenu‐>addAction("Fourth item");

// 设置菜单
ui‐>pushButton_4‐>setMenu(pMenu);

2.2QToolButton
QToolButton类提供了用于命令或选项可以快速访问的按钮,通常可以用在QToolBar里面,一般不会放在Widget中直接使用。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码: toolButtonDemo
2.3QRadioButton
QRadioButton 单选项按钮,状态分为选中和未选中,单选框一般用于在多选1,
单选题
setText()函数
isChecked()函数
setChecked()函数
clicked()信号
QButtonGroup选项按钮
钮组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码:comboboxDemo 选择城市

在这里插入图片描述
在这里插入图片描述
快捷键:代码中 Ctrl + 鼠标左键 查看代码

扫描二维码关注公众号,回复: 6155601 查看本文章
void Widget::on_groupBoxhuNan_clicked(bool checked)
{
    if(checked)
  ui->groupBoxhuNan->setChecked(true);

}
void Widget::on_radioButton_changsha_clicked(bool checked)
{
    if(checked)
    {
      ui->radioButton_changsha->setChecked(true);
    }
}
void Widget::on_radioButtonyueYang_clicked(bool checked)
{
    if(checked)
    {
        ui->radioButtonyueYang->setChecked(true);
    }
}
void Widget::on_radioButtonhengYang_clicked(bool checked)
{
    if(checked)
    {
        ui->radioButtonhengYang->setChecked(true);
    }
}

//广东省
void Widget::on_radioButtonguangDong_clicked(bool checked)
{
    if(checked)
    {
        ui->radioButtonguangDong->setChecked(true);
    }
}

void Widget::on_radioButtonzhongShan_clicked(bool checked)
{
    if(checked)
    {
        ui->radioButtonzhongShan->setChecked(true);
    }
}
void Widget::on_radioButtonshenZheng_clicked(bool checked)
{
    if(checked)
    {
        ui->radioButtonshenZheng->setChecked(true);
    }
}

void Widget::on_radioButtonguangZhou_clicked(bool checked)
{
    if(checked)
    {
        ui->radioButtonguangZhou->setChecked(true);
    }
}
void Widget::on_pushButton_clicked()
{
    QString checkedProvince;
    QString checkedCity;
if(ui->radioButton_changsha->isChecked())
            {
             checkedProvince=QStringLiteral("湖南省");
            checkedCity=QStringLiteral("长沙市");
        }
if(ui->radioButtonyueYang->isChecked())
{
    checkedProvince=QStringLiteral("湖南省");
    checkedCity=QStringLiteral("岳阳市");
}
if(ui->radioButtonhengYang->isChecked())
{
    checkedProvince=QStringLiteral("湖南省");
    checkedCity=QStringLiteral("衡阳市");
}
//广东省

    if(ui->radioButtonzhongShan->isChecked())
    {checkedProvince=QStringLiteral("广东省");
        checkedCity=QStringLiteral("中山市");
    }
if(ui->radioButtonshenZheng->isChecked())
{
    checkedProvince=QStringLiteral("广东省");
    checkedCity=QStringLiteral("深圳市");
}
if(ui->radioButtonguangZhou->isChecked())
{
    checkedProvince=QStringLiteral("广东省");
    checkedCity=QStringLiteral("广州市");
}
    qDebug()<<checkedProvince<<":"<<checkedCity;
    QMessageBox::information(this,QStringLiteral("选择的城市"),
                             checkedProvince+":"+checkedCity,QStringLiteral("确定"));
}

2.4QCheckBox
QCheckBox复选项按钮,状态分为选中和未选中,复选框一班用于在多个中选择多个——多选题
setText()函数
setCheckState()函数
stateChanged()信号
QButtonGroup选项按钮
在这里插入图片描述
在这里插入图片描述
代码:checkBoxDeom复选按钮

if(checked)
{
QMessageBox::information(this, QStringLiteral("是否吃宵夜"),QStringLiteral("小龙虾+啤酒"),
QStringLiteral("好的"),
QStringLiteral("不吃了"));
}

在这里插入图片描述

3、 InputWidgets 输入控件

3.1Combobox
Combobox是一个窗口部件,有按钮和弹出列表组成。currentIndex()当前索引currentText()当前文本 addItem()增加一个下拉选项 currentIndexChanged(int)当前索引改变信号界面添加 Item。
在这里插入图片描述
代码: comboboxDemo 弹出列表选出自己所在的阶层
https://baijiahao.baidu.com/s?id=1593656050717176561&wfr=spider&for=pc
富人:年入200万以上
富裕:年入80万­200万
中产:年入40万­80万
小康:年入20万­40万
贫穷:年入10万­20万
特困:年入10万以下
在这里插入图片描述
在这里插入图片描述

void Widget::on_comboBox_currentIndexChanged(int index)
{
   QString Class;
   switch(index)
   {
   case 0:Class=QStringLiteral("  特困");
   break;
   case 1:Class=QStringLiteral("  屌丝");
       break;
   case 2:Class=QStringLiteral("  小康");
       break;
   case 3:
       Class=QStringLiteral("  中产");
       break;
   case 4:
       Class=QStringLiteral("  富裕");
       break;
   case 5:Class=QStringLiteral("  富人");
       break;
   case 6:Class=QStringLiteral("马爸爸,交个朋友吧!");
       break;
   default:
       break;
   }
   QMessageBox::information(this,QStringLiteral("你的贫富阶层划分"),Class);
}

在这里插入图片描述
3.2FontComboBox
FontComboBox是一个窗口部件,让用户来选择一个字体。放在标准对话框中讲解。
3.3LineEdit
QLineEdit是一个单行文本输入框,为用户提供了比较多的编辑功能,例如选择、复制、粘贴等 函数
setText()设置字体内容 (与其他控件一致)
Text();获取显示的文本 (与其他控件一致)
signals:
textChanged()文本发生改变
textEdited() 文本编辑信号
cursorPositionChanged()光标发生改变
returnPressed() 回车键或return按键按下信号
editingFinished()回车键或return按键按下信号或者焦点丢失信号
selectionChanged() 只要选择改变这个信号就会被发射
在这里插入图片描述
Linux登录框就是LineEdit
inputmask演示输入IP地址
在这里插入图片描述
是否有框:
在这里插入图片描述
回显设置:
在这里插入图片描述
对齐方式
在这里插入图片描述
文字是否需要能拽动
在这里插入图片描述
是否只读
在这里插入图片描述
在这里插入图片描述
最后一个搜索框的代码实现

ui‐>lineEdit_searchFile‐>setPlaceholderText(QStringLiteral("输入搜索的文件"));
QAction *pLineEditAction = new QAction(this);
pLineEditAction‐>setIcon(QIcon(":/image/image/search.ico"));
 ui‐>lineEdit_searchFile‐>addAction(pLineEditAction,
QLineEdit::LeadingPosition);

快速得到资源文件的路径
在这里插入图片描述
3.4QTextEdit
The QTextEdit class provides a widget that is used to edit and display both plain and rich text.
获取QTextEdit中的数据:
QString toPlainText() const;
在这里插入图片描述
在这里插入图片描述
3.5SpinBox+DoubleSpinBox
QSpinBox和QDoubleSpinBox均派生自QAbstractSpinBox,分别是整数调节按钮和浮点数调节按钮,二者的功能基本上是相同的只是精度不一样。 父类属性设置:
在这里插入图片描述
自身属性设置:
在这里插入图片描述
QDoubleSpinBox特有接口void setDecimals(int prec)//设置精度
在这里插入图片描述
代码:spinBoxDemo:修改精度 步进 前后缀
在这里插入图片描述
3.6TimeEdit+DateEdit+TimeDateEdit
用于编辑日期和时间
在这里插入图片描述
全部继承于QAbstractSpinBox常用信号和接口函数
setDateTime(QDateTime::currentDateTime());//设置时间日期 dateTimeChanged();
//时间日期改变
3.7Dial ScollBar Slider
QDial类提供一个圆形的范围控制(如速度计或电位计)
在这里插入图片描述
上下键调节 + pageUp调节
来自自己的属性
在这里插入图片描述
代码: dial_scollBar_slider_Demo valueChange触发信号演示:
在这里插入图片描述

4、 DisplayWidgets 显示控件

4.1Label
QLabel小部件提供文本或图像显示,没有提供用户交互功能可以显示纯文本、富文本、图片(还能缩放)
在这里插入图片描述
在这里插入图片描述
水平方向对其 居中对其 换行
方法1:\n PlainText RichText不能这样弄
方法2:空格换行
在这里插入图片描述
是否需要鼠标选中字体
在这里插入图片描述
显示文字 setText
显示图片 setPixmap
显示动图 setMovie
代码:lableDemo
lable常用方法

QPixmap mImage = QPixmap(":/pic/image/png/poster.png");     
ui‐>label_pic‐>setPixmap(mImage);     
ui‐>label_gif‐>setScaledContents(true);  //容许缩放    
 ui‐>label_pic‐>resize(320, 240);
 QMovie *pMove = new QMovie(":/pic/image/gif/girl.gif");     
ui‐>label_gif‐>setMovie(pMove);     
ui‐>label_gif‐>setFixedSize(510, 215);    
 pMove‐>start();

在这里插入图片描述

4.2TextBrowser
QTextBrowser类提供了一个带有超文本导航的富文本浏览器
代码:TextBrowserDemo 输入送显示
在这里插入图片描述
4.3lcdNumber
显示液晶字体的数字
代码:lcdNumberDemo 液晶时钟 修改lcdNumber宽度,改为8
在这里插入图片描述
获取时间

 QTime time = QTime::currentTime();     
//QTime("21:25:48.150")
// QDateTime::currentDateTimeUtc();
    qDebug() << "Time" << time << "dataTime" <<  QDateTime::currentDateTime()<< "UTC" << QDateTime::currentDateTimeUtc();

 Time QTime("21:27:31.300") dataTime QDateTime(2019­02­20 21:27:31.300 中国标 准时间 Qt::LocalTime) UTC QDateTime(2019­02­20 13:27:31.310 UTC Qt::UTC)

  QTimer *timer = new QTimer(this);     
  connect(timer, SIGNAL(timeout()), this, SLOT(refreshTime()));
 timer‐>start(1000); //1秒定时器
    QTime time = QTime::currentTime(); //读出当前时间    
     QString text = time.toString("hh:mm:ss"); //格式化当前时间     
     ui‐>lcdNumber‐>display(text); //送显示

在这里插入图片描述
4.4progressBar

代码: progressBarDemo 各种slider改变进度条
按下F4 完成如下信号与槽:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
显示进度的接口:
方法一:
ui‐>progressBar‐>setValue(percent);

方法二:
ui‐>progressBar‐>setMaximum(total);
ui‐>progressBar‐>setValue(current); //顺序不能反

猜你喜欢

转载自blog.csdn.net/qq_41848597/article/details/89740170
今日推荐