QT里的基本控件->上

目录

一、setupUi

1、setupUi的作用

2、ui

二、button控件(按钮控件)

1、pushbutton   

1. 1、button通过setText设置文字

1. 2、button通过样式表,把按钮换成一个图片的形状

1.3、button通过setIcon设置按钮上有一个小图片

2、toolButton控件

 3、radiobutton控件

4、checkbox控件

5、commandlinkbutton控件

 6、Dialog button box控件

三、InputWidgets 输入控件  

1、comboxbox

2、FontComboBox

3、lineEdit

 4、text edit+plain text edit

 5、spinbox+doublespinbox

 6、TimeEdit + DateEdit + TimeDateEdit

 7、dial


Qt里的基本控件->下_small建攻的博客-CSDN博客

一、setupUi

1setupUi的作用

        setupUi下面的作用的是用来初始化窗口上面的控件(是在设计里面拖过去的控件才有,如果是自己写的那么是不会有的),可以理解为在设计下拖的控件,那么要经过执行setupUi之后才会被创建,所以拖过去的控件使用就必须要在setupUi之后,不能在之前

例:

   

 我们在这个ui->setupUi(this)上随便设置对控件的操作。我们也不难发现会报错,错误信息如下

这个结果也反映出对控件之后的使用一定要在setupUi之后,不能在之前。

        在setupUi下面可以看到控件的定义,初始化,等等信息(通过设计设计好的属性,基本都会在这个里面看到调用的什么成员来初始化的)你把一个空间拖到界面上,然后构建,那么就能在setupUi下面看到实现,代码就有了。

2、ui

        这个ui可以理解为我们的ui界面,在这个ui界面上的控件是通过ui->控件对象名字,来进行使用的(如果是自己的写的就不归它管)

二、button控件(按钮控件)

1pushbutton   

1. 1button通过setText设置文字

//在类中定义一个bool  isDown;构造中初始化为false,拖入一个button,直接修改名字为连接设备,转到槽写上如下代码,那么就能实现,点击按钮时断开和连接设备了
if(!isDown)
{
isDown=true;
ui->pushButton->setText("断开连接");
}
else
{
isDown=false;
ui->pushButton->setText("连接设备");
}

1. 2button通过样式表,把按钮换成一个图片的形状

具体操作如下:

 右键按钮

选择改变样式表,添加资源-->broder-image,选择你的图片,然后点OK,那么这个按钮就变成了一个图片的样子,就如下button,看起来是个图片但实际是一个按钮,只不过是一个图片形状的按钮 

1.3button通过setIcon设置按钮上有一个小图片

        在构造函数中

ui->pushButton->
setIcon(QIcon("图片路径")); 
得到一个button,可以通过其他方式,让他得到如上效果

2toolButton控件

        创建后拖上去即可

 3radiobutton控件

         单选控件,如果所示,左边是一个分组,右边是一个分组可以单选选择

        选择左边三个新建一个按钮组,右边同样那么就能左边三个选一个,右边三个选一个,给每一个控件添加一个信号clicked(bool)是否选中 , 修改好对象名字,是 clicked()选中这个按钮就会响应事件        
 如:
        首先,创建3个按钮
        
        然后,每3个设为一组(右键设置成ButtonGroup)
        
        最后,代码实现
        
void Widget::on_radioButton_1_clicked(bool checked) { 
    if(checked) ui->radioButton_1->setChecked(true);//设置为选中 
}
void Widget::on_radioButton_2_clicked(bool checked) {
     if(checked) ui->radioButton_2->setChecked(true);//设置为选中 
}
void Widget::on_radioButton_3_clicked(bool checked) { 
    if(checked) ui->radioButton_3->setChecked(true);//设置为选中 
}
void Widget::on_radioButton_4_clicked(bool checked) { 
    if(checked) ui->radioButton_4->setChecked(true);//设置为选中 
}
void Widget::on_radioButton_5_clicked(bool checked) { 
    if(checked) ui->radioButton_5->setChecked(true);//设置为选中 
}
void Widget::on_radioButton_6_clicked(bool checked) { 
    if(checked) ui->radioButton_6->setChecked(true);//设置为选中 
}
//然后设置一个确定按钮添加
QString str1,str2; 
if(ui->radioButton_1->isChecked())//是否选中 
    str1+="1"; 
else if(ui->radioButton_2->isChecked()) 
    str1+="2"; 
else if(ui->radioButton_3->isChecked()) 
    str1+="3"; 
if(ui->radioButton_4->isChecked()) 
    str2+="4"; 
else if(ui->radioButton_5->isChecked()) 
    str2+="5"; 
else if(ui->radioButton_6->isChecked()) 
    str2+="6"; 
//然后弹窗显示
QMessageBox::information(this,"你选择 
了",str1+str2,QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes);

4checkbox控件

        

         操作和radiobutton一样

5、commandlinkbutton控件

        pushbutton类似,只不过这个的显示是以图标+文件显示的

         

         图标的修改,可以直接在这里设置

         

        使用方法和pushbutton 一样
void Widget::on_commandLinkButton_clicked() { 
    QMessageBox::information(this,"你的选
    择","str1+str2",QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes); 
}

 6Dialog button box控件

        其实是一个按钮组,选择可以自己再属性的位子选择

        

三、InputWidgets 输入控件  

1comboxbox

        下拉列表,由按钮和弹出列表组成
        

         双击这个控件,可以直接往里面加内容,一行一个

         

 代码实现操作如下:

void Widget::on_comboBox_currentIndexChanged(int index) { 
    QString str; 
    switch(index) {
    case 0:str=ui->comboBox->itemText(0);//获取第0行的字符串 
           break; 
    case 1:str=ui->comboBox->itemText(1); 
           break; 
    case 2:str=ui->comboBox->itemText(2); 
           break; 
    case 3:str=ui->comboBox->itemText(3); 
           break; 
                  }
        QMessageBox::information(this,"你的选     
         择",str,QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes); 
}
insertItem(2,"bb");//在第二个位置添加一个字符串

2FontComboBox

         让用户选择一个字体的部件

         

3lineEdit

        单行文本输入框,有丰富的输入操作
         

         常用的修改属性     

 ​​        

            对齐格式输入

         

             提示文本输入

         

                 是否只读

                

                 带清除按钮

                

带图片的输入框,先把图片加载一下,图片类型为ico,在构造函数中

ui->lineEdit->setPlaceholderText("这是个带ico的"); 
QAction *paction=new QAction(this); 
paction->setIcon(QIcon("图片路径")); 
ui->lineEdit->addAction(paction,QLineEdit::LeadingPosition);

读取和设置文本框的内容

QString str; str=ui->lineEdit->text();//获取单行edit中的内容 
//而setText("引号里则是给文本框设置的内容")设置文本内容字符串 QMessageBox::information(this,"你选择 
了",str,QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes); 
//如果是输入的内容是数字那么 str.toInt(),就能得到数字

lineEdit包含的方法

textChanged()文本发生改变 
textEdited() 文本编辑信号 
cursorPositionChanged()光标发生改变 
returnPressed() 回车键或return按键按下信号 
editingFinished()回车键或 return按键按下信号或者焦点丢失信号 
selectionChanged() 只要选择改变这个信号就会被发射

 4text edit+plain text edit

        

         上面是多行edit,下面是纯粹的文本,可以输入www.baidu.com就可以看出2个文本框之间的差异

         获取里面的内容:

        toPlainText();//获取Text中的内容或者Plain Text

 5spinbox+doublespinbox

        这两个都是派生自QAbstractSpinBox的,分别是整数调节按钮和浮点数调节按钮,功能基本是一样的, 只是精度不一样

        

 6TimeEdit + DateEdit + TimeDateEdit

         输出格式,三个都是通用的,yyyy:MM:dd:HH:mm:ss 表示 xxxx:xxxx:xxxx

:xx
        
包含头文件: 
#include <QTime> 
#include <QTimer> 
定义QTimer qtimer; //这个是计时器 

QTime time=QTime::currentTime();//获取时间 时分秒 
ui->timeEdit->setTime(time); 
QDate time2=QDate::currentDate();//获取时间 年月日 
ui->timeEdit->setDate(time2); 
//定义槽函数用来自动设置时间 void timeoutslot(); 
qtimer.start(1);//时间间隔为1ms 

关联信号和槽,是计时器发的信号,信号为QTimer::timeout
connect(&qtimer, &QTimer::timeout,this, &Widget::timeoutslot); 
//槽实现 
void Widget::timeoutslot() 
{ 
    ui->timeEdit->setTime(QTime::currentTime());
    ui->dateEdit->setDate(QDate::currentDate()); 
}
这里只实现了time的,其他两个的实现照搬这个就好了
从控件获取时间,调用date()获取年月日调用time获取时分秒

 7dial

        一个圆型的范围控制,比如速度计电位计等

                                                ​​​​​​​        ​​​​​​​              

          valueChanged(int)信号,表示这个被修改了,可以直接获取到控件的值

void Widget::on_dial_valueChanged(int value) { 
    ui->label->setNum(value); 
}

              代码设置它的值,获取它的值   

ui->dial->setValue(66);//获取值 
ui->dial->value();//获取值
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

small建攻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值