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 );
相信上面就不用我多解释,大家也一定明白了吧.实际上 CheckBox 跟 RadioButton
是一种很类似的东西.
LineEdit--进入文字的处理
QT Designer 中有一个标有 『ab』 标的小 Icon, 那就是 LineEdit 了.
现在我们在这里按一下,然後画出一个 LineEdit 来. 然後在这个 LineEdit
上面,用 mouse double click. 在出现的 window 中输入 "Display Some Text"
现在我们来看看程式码的变化∶
form1.h 中,定义了 LineEdit1
class QLineEdit;
QLineEdit* LineEdit1;
form1.cpp 中∶
#include
LineEdit1 = new QLineEdit( this, "LineEdit1" ); /生成 LineEdit1
LineEdit1->setGeometry( QRect( 130, 70, 251, 71 ) ); /设定 LineEdit1 的位置
LineEdit1->setText( tr( "Display Some Text" ) ); / LineEdit1 显示的字为 "Display Some Text"
我们能够看到,在 QT Designer 的 Property Edit 中,有一个 echoMode 的选项.现在我们把他选择为
Password. 这时侯我们就看到刚刚打入的 "Display Some Text" 这几个字,已变成了 "*******"了.
在 QT Designer 中,您能够选择 echoMode 为 Password 或是 NoEcho. 这些通常都是用作密码输入
用的.当客户输入一组密码的时侯,屏幕上的密码输入 window 并不显示用户的密码明文. 而是采用 Password
---"*******" 或 NoEcho ----(什麽都不显示) 来代议. form1.cpp 的程式码中会有下面的程式码出现∶
LineEdit1->setEchoMode( QLineEdit::Password );
√ LineEdit 通常是用来显示或读取单行的数据.
MultiLineEdit--进一步学习文字处理
MultiLineEdit 也是作为文字处理用的.但是他的功能就比 LineEdit 要强出很多了. MultiLineEdit
的 Icon 是个上面画有 『cde』下面画有 『ab』的图案的按钮.
我们先做出一个MultiLineEdit,然後 double click, 在文字部份写入∶
This is a Multi Line Edit.
we are trying to put some text here.
然後观察程式码:
form1.h 多了
class QMultiLineEdit;
和
QMultiLineEdit* MutiLineEdit1;
form1.cpp中有了
#include
MultiLineEdit1 = new QMultiLineEdit( this, "MultiLineEdit1" );
MultiLineEdit1->setGeometry( QRect( 70, 40, 441, 281 ) );
MultiLineEdit1->setText( tr( "This is a Multi Line Edit./n"
"We are trying to put some text here./n"
Qt入门
最新推荐文章于 2022-11-26 09:50:51 发布