qlabel显示两行_qt入门(二)

这篇博客介绍了QT编程中QRadioButton、QRadioButton组、QCheckBox、QCheckBox组、QLineEdit和QLCDNumber的使用方法,包括它们的创建、属性设置、事件响应和交互操作,提供了详细的代码示例和QT Designer的操作指南。
摘要由CSDN通过智能技术生成

在 .h 文件中,多出了两行

class QRadioButton; //告诉程式我们需要用到 QRadioButton

QRadioButton* RadioButton1; //QRadioButton *RadioButton1

在 .cpp 的文件中出现了下面三行程式码,以及一个 include 文件

#include //QRadioButton 所需要的 include 文件

RadioButton1 = new QRadioButton( this, "RadioButton1" ); //生成一个新的 QRadioButton 在介面 this上

// this 就是只当前的主介面.也就是我们的

// Form1 : public QDialog

// 白话文的方法来说呢,就是我们这个程式的

// 主显示视窗.相信大家已定很熟习了吧.

RadioButton1->setGeometry( QRect( 260, 60, 151, 61 ) ); // 通过 setGeometry(QRect()) 来设定我们这个

// RadioButton 的大小

RadioButton1->setText( tr( "RadioButton1" ) ); // 用 setText() 来给我们的这个 RadioButton

// 命名.这里这里名为 "RadioButton1"

将上面这些程式码加入到我们的 form1.h 和 form1.cpp 中,重新编译程式,我们就看到了一个名为 RadioButton1

的 RadioButton 了.

RadioButton 除了可以用到 PushButton 中的 setEnabled( FALSE )的选项来 Disable 这个 RadioButton

以及在 QT 中通用的 setFont 以外,还提共一个非常常用的 setChecked (TRUE/FLASE) 功能.

在 QT Designer 中, 用 mouse click 一下我们刚刚生成的那个 RadioButton, 然後在 QT Designer 的

Property Edit 中.选择 checked, 在 checked 後面选择 True. 经过 uic 程式以後,重新观察 .cpp 程式

码, 您会发现,在 .cpp 文件中,多出了一行∶

RadioButton1->setChecked( TRUE ); //这行就设定了, RadioButton1 在程序一看使的时侯

//就已经被设定为内定选项了.

重新编译程式码以後,就可以看出.这时侯 RadioButton1 前面已经被选中了.

选择按钮,重要就在於选择.现在我们来增加另外一组 RadioButton 就可以很简洁的看出 setChecked 的作用了.

在您的 form1.h 文件中,加入∶

QRadioButton* RadioButton2;

在 form1.cpp 文件中加入∶

RadioButton2=new QRadioButton2(this,"RadioButton2");

RadioButton2->setGeometry(QRect(260, 140, 151, 61)); //这里的位置比 RadioButton1的位置低出

//80 来.

这时侯我们重新编译後,执行程式,就会发现. RadioButton1 前面是被自动选择上了.而 RadioButton2 则

没有.

因为 RadioButton 常常被用作二选一,三选一或者多选一.所以这里向大家简单的介绍一下ButtonGroup.

在 QT Designer 中,上面那一堆小按钮中有一个是 ButtonGroup 的按钮.现在在这个上面用 mouse click

一下.然後在 QT Designer 中画出一个方的范围来. 这个范围要把刚刚我们画的那个 RadioButton 包进去

喔.一定要. (see figure 2)

figure 2

回来检查 uic 生成的 source code. 我们会发现

form1.h 中多出了

class QButtonGroup; // 用到 QButtonGroup

QButtonGroup* ButtonGroup1; // QButtonGroup *ButtonGroup1

而在 form1.cpp 中,有了

#include // QButtonGroup 需要的 .h 文件

ButtonGroup1 = new QButtonGroup( this, "ButtonGroup1" ); //在主视窗中生成 ButtonGroup1

ButtonGroup1->setGeometry( QRect( 230, 40, 251, 181 ) ); // 设定ButtonGroup的位置与大小

ButtonGroup1->setTitle( tr( "ButtonGroup1" ) ); //设定显示为 "ButtonGroup1"

RadioButton1 = new QRadioButton( ButtonGroup1, "RadioButton1" );

//在这里,我们看到,这次不再是

//RadioButton1 = new QRadioButton( this, "RadioButton1" );

//而是把 this 换成了 ButtonGroup1 了.这也就是说,这次我们

//生成的 RadioButton1 是在 ButtonGroup1 这个介面上,而不是

//以前的主视窗了.

RadioButton1->setGeometry( QRect( 30, 30, 151, 61 ) );

// RadioButton1 的位置也有了改变. 这里的 30, 30 是以 ButtonGroup1 来

// 作为标准的.而不事主视窗.

// 下面这两行就不用多说了,大家一定知道

RadioButton1->setText( tr( "RadioButton1" ) );

RadioButton1->setChecked( TRUE );

现在我们自己把上面的程式码加入到我们的 form1.h 和 form1.cpp

中.同时把我们的 RadioButton1 从 this 改到 ButtonGroup1

位置也改变为 RadioButton1->setGeometry( QRect(30,30,151,61));

同时更该 RadioButton2 的设定. this 改成 ButtonGroup1

位置改成 RadioButton2->setGeometry( QRect(30, 100, 151, 61));

使 RadioButton2 跟 RadioButton1 的位置一样,但是低 70

重新编译程式.您就会发现这时侯的 RadioButton 变成二选一了.两个

中您只能选择一个.当您在 RadioButton2 前面用 mouse 按一下, RadioButton1

前面就会自动清除掉.

√ RadioButton 通常是用在唯一选择中.也就是说从多个选择中,选出一个来.所以通常配合ButtonGroup

来使用.但也可以单个独立使用.

CheckBox:

CheckBox 是一种跟 RadioButton 差不多的东西.通常的区别在於 CheckBox 被用於多重选择. CheckBox 在

QT Designer 中是一个方方的中间有个 X 的标 的东西.好像一个小箱子一样.我们现在好像 RadioButton

一样,做出两个 Checkbox, 然後在做出一个 ButtonGroup.把 checkbox 2 设定为 checked

form1.h 文件中,多出了

class QCheckBox;

QButtonGroup* ButtonGroup2;

QCheckBox* CheckBox1;

QCheckBox* CheckBox2;

而 form1.cpp 呢.也就有了

#include

ButtonGroup2 = new QButtonGroup( this, "ButtonGroup2" );

ButtonGroup2->setGeometry( QRect( 20, 180, 161, 141 ) );

ButtonGroup2->setTitle( tr( "ButtonGroup2" ) );

CheckBox1 = new QCheckBox( ButtonGroup2, "CheckBox1" );

CheckBox1->setGeometry( QRect( 20, 30, 121, 41 ) );

CheckBox1->setText( tr( "CheckBox1" ) );

CheckBox2 = new QCheckBox( ButtonGroup2, "CheckBox2" );

CheckBox2->setGeometry( QRect( 20, 90, 121, 41 ) );

CheckBox2->setText( tr( "CheckBox2" ) );

CheckBox2->setChecked( TRUE );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值