qt (1) —— 入门
环境: Qt Creator 2.8.1 Qt 5.1.1 gcc 4.9.1
我的第一份qt程序
hello wolrd 控制台应用程序
#include #include int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); qDebug()<<"hello world"; return
初识信号槽
再次运行,单击button,窗口自动关闭。
认识基本的窗口
MainWindow对应QMainWindow
menuBar对应QMenuBar,它的下级是menuWindow,子项是actionWindow。
每一个Object都由一个Class对应。
右击pro图标可以增添新的ui,且对应的.h,.cpp等文件会自动加入文件路径。
右下角的窗体是对象的属性列表。
简单UI程序
分析:
, rand()生成100的随机整数。
关键代码:
mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this);}MainWindow::~MainWindow(){ delete ui;}void MainWindow::on_random_clicked(){ srandom(time(0)); int result = (int)((double)rand()/RAND_MAX*100+0.5); QString str= QString::number(result,10); ui->textEdit->setText(str); ui->textEdit->setAlignment(Qt::AlignHCenter);}
使用空项目创建hello world的窗口程序。
当选择使用空项目进行创建程序后,我们发现整个文件夹只有cpp资源文件和pro配置文件。 初步设想是使用label显示“hello world”,并把label放在QApplication中。 使用帮助我们找到ALable和QApplication,他们的头文件都在/home/edemon/Qt5.1.1/5.1.1/gcc/include/QtWidgets路径下,那么include
SOURCES += \ main.cppQT
main.cpp:
#include #include int main(int argc,char *argv[]){ QApplication app(argc,argv); QLabel *label = new QLabel("hello world."); label->show(); label->setFixedSize(200,60); return
执行:
如果不想在头文件书写路径时那么麻烦,可以在pro配置文件中加上QT += core gui declarative.
在qt creator中查找帮助
grid布局
空项目练习。 pro:
SOURCES += \ main.cppQT
main.cpp:
#include #include #include #include #include #include #include int main(int argc,char *argv[]){ QApplication app(argc,argv); QWidget *window = new QWidget(); window->setWindowTitle("hello"); QGridLayout *layout = new QGridLayout(); QLabel *label1=new QLabel("name:"); QLineEdit *txt1=new QLineEdit(); QLabel *label2=new QLabel("name:"); QLineEdit *txt2=new QLineEdit(); layout->addWidget(label1,0,0); layout->addWidget(txt1,0,1); layout->addWidget(label2,1,0); layout->addWidget(txt2,1,1); QPushButton *qbutton = new QPushButton("ok"); layout->addWidget(qbutton,2,0); window->setLayout(layout); window->show(); return
拉伸窗口:
竖直布局
空项目练习。 main.cpp
#include #include #include #include #include #include #include #include #include int main(int argc,char *argv[]){ QApplication app(argc,argv); QWidget *window = new QWidget(); window->setWindowTitle("hello"); //QGridLayout *layout = new QGridLayout(); QVBoxLayout *layout = new QVBoxLayout(); //QGridLayout *layout = new QGridLayout(); QLabel *label1=new QLabel("name:"); QLineEdit *txt1=new QLineEdit(); QLabel *label2=new QLabel("name:"); QLineEdit *txt2=new QLineEdit(); layout->addWidget(label1,0); layout->addWidget(txt1,0); layout->addWidget(label2,1); layout->addWidget(txt2,1); QPushButton *qbutton = new QPushButton("ok"); layout->addWidget(qbutton,2,0); window->setLayout(layout); window->show(); return
水平布局
空项目练习。 main.cpp
#include #include #include #include #include #include #include #include #include int main(int argc,char *argv[]){ QApplication app(argc,argv); QWidget *window = new QWidget(); window->setWindowTitle("hello"); //QGridLayout *layout = new QGridLayout(); //QVBoxLayout *layout = new QVBoxLayout(); QHBoxLayout *layout = new QHBoxLayout(); QLabel *label1=new QLabel("name:"); QLineEdit *txt1=new QLineEdit(); QLabel *label2=new QLabel("name:"); QLineEdit *txt2=new QLineEdit(); layout->addWidget(label1); layout->addWidget(txt1); layout->addWidget(label2); layout->addWidget(txt2); QPushButton *qbutton = new QPushButton("ok"); layout->addWidget(qbutton); window->setLayout(layout); window->show(); return
spliter
Qt GUI Application spliter水平或spliter竖直布局都可以拉动部件之间中间的分割线,使得图形变换。
QDir
空项目练习。 QDir可以实现很多路径操作,比如常用的’ls ‘, ‘mkdir’等。 main.cpp
#include #include #include #include #include int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); /* find special path. */ QDir dir("/home/edemon/workspace"); qDebug()<<"worksapce: "<QStyle改变窗体风格
Qt Gui Applicatuion. main.cpp
#include "mainwindow.h"#include int main(int argc, char *argv[]){ QApplication a(argc, argv); a.setStyle("macintosh"); MainWindow w; w.show(); return a.exec();}/*QStyle * QApplication::setStyle(const QString & style) [static]The string must be one of the QStyleFactory::keys(),typically one of "windows", "fusion", "windowsxp", or "macintosh".Style names are case insensitive. */
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~