Qt4 QRadioButton和QCheckBox用法示例[转]
阅读原文时间:2021年04月24日阅读:1

初学Qt,简单示例QRadioButton和QCheckBox的用法。

mybuttonwindow.h

1 #ifndef MYBUTTONWINDOW_H
2 #define MYBUTTONWINDOW_H
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 class MyButtonWindow : public QWidget 10 { 11 Q_OBJECT 12 public: 13 explicit MyButtonWindow(QWidget *parent = 0); 14 void initButtons(); 15
16 signals: 17
18 public slots: 19 void radioChange(); 20 void checkChange(); 21
22 private: 23 QGroupBox *radioGroup; 24 QRadioButton *radio1; 25 QRadioButton *radio2; 26 QRadioButton *radio3; 27 QLabel *label11; 28 QLabel *label12; 29 QLabel *label13; 30 QLabel *label1; 31 QGroupBox *checkGroup; 32 QCheckBox *check1; 33 QCheckBox *check2; 34 QCheckBox *check3; 35 QLabel *label21; 36 QLabel *label22; 37 QLabel *label23; 38 QLabel *label2; 39 }; 40 #endif // MYBUTTONWINDOW_H

mybuttonwindow.cpp

1 #include "mybuttonwindow.h"
2 #include
3 #include
4
5 MyButtonWindow::MyButtonWindow(QWidget *parent) :
6 QWidget(parent)
7 {
8 setGeometry(100,100,230,190);
9
10 // radio group
11 radioGroup = new QGroupBox("Options 1", this);
12 radioGroup->setGeometry(10,10,100,110);
13
14 radio1 = new QRadioButton("Choice1", this);
15 radio1->move(20,35);
16 radio2 = new QRadioButton("Choice2", this);
17 radio2->move(20,60);
18 radio3 = new QRadioButton("Choice3", this);
19 radio3->move(20,85);
20
21 label1 = new QLabel("Option1 Result:", this);
22 label1->setGeometry(10,130,100,20);
23 label1->setAlignment(Qt::AlignRight);
24
25 // check group
26 checkGroup = new QGroupBox("Options 2", this);
27 checkGroup->setGeometry(120,10,100,110);
28
29 check1 = new QCheckBox("Choice1", this);
30 check1->move(130,35);
31 check2 = new QCheckBox("Choice2", this);
32 check2->move(130,60);
33 check3 = new QCheckBox("Choice3", this);
34 check3->move(130,85);
35
36 label2 = new QLabel("Option2 Result:", this);
37 label2->setGeometry(10,160,100,20);
38 label2->setAlignment(Qt::AlignRight);
39
40 // init buttons
41 initButtons();
42
43 // signals and slots
44 connect(radio1, SIGNAL(clicked(bool)), this, SLOT(radioChange()));
45 connect(radio2, SIGNAL(clicked(bool)), this, SLOT(radioChange()));
46 connect(radio3, SIGNAL(clicked(bool)), this, SLOT(radioChange()));
47 connect(check1, SIGNAL(clicked()), this, SLOT(checkChange()));
48 connect(check2, SIGNAL(clicked()), this, SLOT(checkChange()));
49 connect(check3, SIGNAL(clicked()), this, SLOT(checkChange()));
50 }
51
52 void MyButtonWindow::initButtons() 53 {
54 QPixmap pixmap1(":/btn1_gray");
55 QPixmap pixmap2(":/btn2_gray");
56 QPixmap pixmap3(":/btn3_gray");
57
58 label11 = new QLabel("", this);
59 label11->setGeometry(120,129,18,19);
60 label11->setPixmap(pixmap1);
61 label11->resize(pixmap1.size());
62
63 label12 = new QLabel("", this);
64 label12->setGeometry(149,129,18,19);
65 label12->setPixmap(pixmap2);
66 label12->resize(pixmap2.size());
67
68 label13 = new QLabel("", this);
69 label13->setGeometry(178,129,18,19);
70 label13->setPixmap(pixmap3);
71 label13->resize(pixmap3.size());
72
73 label21 = new QLabel("", this);
74 label21->setGeometry(120,159,18,19);
75 label21->setPixmap(pixmap1);
76 label21->resize(pixmap1.size());
77
78 label22 = new QLabel("", this);
79 label22->setGeometry(149,159,18,19);
80 label22->setPixmap(pixmap2);
81 label22->resize(pixmap2.size());
82
83 label23 = new QLabel("", this);
84 label23->setGeometry(178,159,18,19);
85 label23->setPixmap(pixmap3);
86 label23->resize(pixmap3.size());
87 }
88
89 void MyButtonWindow::radioChange() 90 {
91 QPixmap pixmap1(":/btn1_gray");
92 QPixmap pixmap2(":/btn2_gray");
93 QPixmap pixmap3(":/btn3_gray");
94 label11->setPixmap(pixmap1);
95 label11->resize(pixmap1.size());
96 label12->setPixmap(pixmap2);
97 label12->resize(pixmap2.size());
98 label13->setPixmap(pixmap3);
99 label13->resize(pixmap3.size()); 100
101 QString url; 102 QLabel *label; 103 if (sender() == radio1) 104 { 105 url = ":/btn1_bright"; 106 label = label11; 107 } 108 else if (sender() == radio2) 109 { 110 url = ":/btn2_bright"; 111 label = label12; 112 } 113 else if (sender() == radio3) 114 { 115 url = ":/btn3_bright"; 116 label = label13; 117 } 118
119 QPixmap pixmap(url); 120 label->setPixmap(pixmap); 121 label->resize(pixmap.size()); 122 } 123
124 void MyButtonWindow::checkChange() 125 { 126 QString url; 127 QLabel *label; 128 if (sender() == check1) 129 { 130 url = check1->isChecked() ? ":/btn1_bright" : ":/btn1_gray"; 131 label = label21; 132 } 133 else if (sender() == check2) 134 { 135 url = check2->isChecked() ? ":/btn2_bright" : ":/btn2_gray"; 136 label = label22; 137 } 138 else if (sender() == check3) 139 { 140 url = check3->isChecked() ? ":/btn3_bright" : ":/btn3_gray"; 141 label = label23; 142 } 143
144 QPixmap pixmap(url); 145 label->setPixmap(pixmap); 146 label->resize(pixmap.size()); 147 }

main.cpp

1 #include
2 #include
3 #include "mybuttonwindow.h"
4
5 int main(int argc, char *argv[])
6 {
7 QApplication a(argc, argv);
8 QTextCodec::setCodecForTr(QTextCodec::codecForName("System")); //消除乱码
9
10 MyButtonWindow buttonWindow; 11 buttonWindow.show(); 12
13 return a.exec(); 14 }

运行结果示例:

转自:

http://blog.csdn.net/pigautumn/article/details/9017135

转载于:https://www.cnblogs.com/zhouwenJS/p/3755431.html

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章