分类: C/C++
2009-11-23 17:00:43
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel *label = new QLabel("Hello, world!");
label->resize(500,300);
label->show();
return a.exec();
}QLabel *label = new QLabel("信号槽Hello, world!
");
你会看到Hello变色了
#include "QtGui/QApplication"
#include "QtGui/QPushButton"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPushButton *button = new QPushButton("Quit");
QObject::connect(button,SIGNAL(clicked()),&a,SLOT(quit()));
button->resize(200,100);
button->show();
return a.exec();
}
组件布局
一、水平布局
#include "QtGui/QApplication"
#include "QtGui/QLabel"
#include "QtGui/QSpinBox"
#include "QtGui/QSlider"
#include "QtGui/QHBoxLayout"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *window = new QWidget;
window->setWindowTitle("Enter your age");
QSpinBox *spinBox = new QSpinBox;
QSlider *slider = new QSlider(Qt::Horizontal);
spinBox->setRange(0, 130);
slider->setRange(0, 130);
QObject::connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));
QObject::connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));
spinBox->setValue(35);
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(spinBox);
layout->addWidget(slider);
window->setLayout(layout);
window->show();
return app.exec();
}
二、垂直布局
#include
#include
#include
#include
#include
#include
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QWidget *pwidget=new QWidget;
QLabel label(pwidget);
label.setText(QObject::tr("同一个世界,同一个梦想!"));
QPushButton *btn=new QPushButton(QObject::tr("关闭"),pwidget);
QVBoxLayout *layout=new QVBoxLayout;
layout->addWidget(&label);
layout->addWidget(btn);
pwidget->setLayout(layout);
QObject::connect(btn,SIGNAL(clicked()),pwidget,SLOT(close()));
pwidget->show();
return app.exec();
}
Qt一共有三种主要的layout,分别是:
QHBoxLayout- 按照水平方向从左到右布局;
QVBoxLayout- 按照竖直方向从上到下布局;
QGridLayout- 在一个网格中进行布局,类似于HTML的table。
layout使用addWidget添加组件,使用addLayout可以添加子布局,因此,这就有了无穷无尽的组合方式首先创建一个工程,在dialogimpl.h中代码如下:
#ifndef DIALOGIMPL_H
#define DIALOGIMPL_H
#include
class MainWindow:public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent=0);
};
#endif
继续看,在dialogimpl.cpp中代码如下(这里主要是启动画面后程序的显示):#include "dialogimpl.h"
#include "QTextEdit"
MainWindow::MainWindow(QWidget *parent):QMainWindow(parent)
{
setWindowTitle(tr("flash"));
QTextEdit *edit=new QTextEdit;
edit->setText("hello world!");
setCentralWidget(edit);
resize(1000,800);
sleep(3);
}
接下来看启动画面的部分,main.cpp中的代码如下:#include
#include "dialogimpl.h"
#include
int main(int argc, char ** argv)
{
QApplication app( argc, argv );
//此部分设置启动画面QPixmap pixmap("/home/guo/QT/flash/src/1.jpg");
QSplashScreen *splash=new QSplashScreen(pixmap);
splash->show();
splash->resize(300,260);
app.processEvents();//使程序在显示启动画面的同时仍能响应鼠标等其他事件
MainWindow window;
window.show();
splash->finish(&window);//主窗体对象初始化完成后,结束启动画面
return app.exec();
}