您的位置:首页 > 编程语言 > Qt开发

QT Demo

2016-05-21 00:28 501 查看
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QObject>
#include<QString>
#include<QButtonGroup>
#include<QCheckBox>
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
void paintEvent(QPaintEvent *);

~MainWindow();
public slots:
void chkChanged();
void nonChkChanged();

private:
Ui::MainWindow *ui;
QCheckBox *exclusive[3];
QCheckBox *non_exclusive[3];
QButtonGroup *chk_group[2];
};

#endif // MAINWINDOW_H

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

QString str1[3] = {"Game","Office","Develop"};
QString str2[3] = {"P&Programing","Q&t","O&S"};
int xpos = 30;
int ypos = 30;
chk_group[0] = new QButtonGroup(this);
chk_group[1] = new QButtonGroup(this);
for(int i=0;i<3;i++){
exclusive[i] = new QCheckBox(str1[i],this);
exclusive[i]->setGeometry(xpos,ypos,100,30);
chk_group[0]->addButton(exclusive[i]);
non_exclusive[i] =  new QCheckBox(str2[i],this);
non_exclusive[i] ->setGeometry(xpos+120,ypos,100,30);
chk_group[1]->addButton(non_exclusive[i]);
connect(exclusive[i],SIGNAL(clicked()),this,SLOT(chkChanged()));
connect(non_exclusive[i],SIGNAL(clicked()),this,SLOT(nonChkChanged()));
ypos+=40;
}
chk_group[0]->setExclusive(false);
chk_group[1]->setExclusive(true);

}
void MainWindow::paintEvent(QPaintEvent *){

}
void MainWindow::nonChkChanged(){
for(int i=0;i<3;i++){
if(non_exclusive[i]->isChecked()){
qDebug("non_checkbox %d selected ",i+1);
}

}
}

void MainWindow::chkChanged(){

for(int i=0;i<3;i++){
if(exclusive[i]->isChecked()){
qDebug("checkbox %d selected",i+1);
}
if(exclusive[i]->checkState()){
qDebug("checkbox %d selected",i+1);
}
}

}

MainWindow::~MainWindow()
{
delete ui;
//    delete []exclusive;//不要delete否则程序出错
//    delete []non_exclusive;
//    delete []chk_group;
}

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();

return a.exec();
}
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget"/>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>23</height>
</rect>
</property>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>


#-------------------------------------------------
#
# Project created by QtCreator 2016-05-20T23:29:05
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = TestControllerUI
TEMPLATE = app

SOURCES += main.cpp\
mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: