记得以前学习 VB/Delphi/MFC 时,开始的例子一般是在窗口上有个按钮和文本标签。点击按钮时,文本标签上会显示一段话。这样的例子在 QT 里是怎么做呢?
在 QT 里就是 QLabel 和 QPushButton,并用 connect 把它们联系起来。先看一下头文件 helloqt2.h :
- #ifndefHELLO_QT2
- #defineHELLO_QT2
- #include<QDialog>
-
classQLabel;
-
classQPushButton;
-
classMyEvent:publicQDialog
- {
- Q_OBJECT
-
public:
- MyEvent(QWidget*parent=0);
-
privateslots:
-
voidbutton1Clicked();
-
private:
- QLabel*m_label;
- QPushButton*m_button;
-
};
- #endif
再看下实现体 -- helloqt2.cpp :
- #include<QtGui>
- #include<QApplication>
- #include"helloqt2.h"
- MyEvent::MyEvent(QWidget*parent)
- :QDialog(parent)
- {
-
m_label=newQLabel(tr("label1"));
-
m_button=newQPushButton(tr("button1"));
-
connect(m_button,SIGNAL(clicked()),this,SLOT(button1Clicked()));
-
QHBoxLayout*layout=newQHBoxLayout;
- layout->addWidget(m_button);
- layout->addWidget(m_label);
- setLayout(layout);
-
setWindowTitle(tr("MyEvent"));
- }
-
voidMyEvent::button1Clicked()
- {
-
m_label->setText(tr("Goodmorning!"));
- }
-
intmain(intargc,char*argv[])
- {
- QApplicationapp(argc,argv);
- MyEventdialog;
-
returndialog.exec();
- }
关键要注意第 11 行,在这里把按钮的 click 事件和当前类的 button1Clicked() 成员函数关联了起来。而在 button1Clicked() 成员函数里可以设置标签的内容。
其它的则比较好理解,在第 8, 9 行新建了标签和按钮,在 13 - 16 行给窗口添加了一个排版的对象并把标签和按钮加入其中。在 17 行是设置窗口标题为 "MyEvent"。
依次执行如下 4 条命令进行编译运行。
- qmake-qt4-project
- qmake-qt4
- make
- ./helloqt2
出现如下窗口:
点一下 button1,显示如下图:
有意思的是,不必指定按钮或者标签的具体位置,QT会自动进行排版。可以继续进行多一点尝试,比如试着把第 13 行改成下面的样子: QVBoxLayout *layout = new QVBoxLayout;
再或者把第 8 和第 9 行前后位置换一下,再编译运行查看结果。
分享到:
相关推荐
qt-webkit-kiosk:这是在Qt和QtWebkit上编写的简单浏览器应用程序
PyFladesk - 使用Flask和QtWebKit创建桌面应用程序
开源 WebKit 浏览器引擎与 Qt 4.5 应用程序和 UI 框架的集成模糊了本地应用程序与网络内容之间的界 限。有了此类混合模式的服务,就可以高效地构建和发布很难或无法仅通过网络 API 或本地开发环境单 独开发的功能。...
很棒的Qt 精选Qt相关资料的精选清单。 基本模块 -其他模块使用的核心非图形类。... 测试-用于对Qt应用程序和库进行单元测试的类。 WebKit-用于基于WebKit2的实现和新的QML API的类。 另请参阅附加模块中的Qt
capybara-webkit 由于不推荐使用QtWebKit,而赞成使用QtWebEngine,因此该项目的开发已暂停。 相反,我们建议使用或驱动程序。Qt依赖关系和安装问题capybara-webkit依赖于跨平台开发工具包Qt的WebKit实现。 您需要...
icu4c-57_1(编译QtWebkit所需要的第三方库) ICU(International Component for Unicode/Unicode国际化组件) 是 Unicode 支持、软件...这个库是在一种无限制的开放源码许可证下发布的,这使它可以在许多应用程序中使用。
1.2、QT应用范围 KDE ava Google earth 0pera浏览器 Skype网络电话 QCad Adobe Photoshop Album CGAL计算几何库 1.3、开发环境 可视化工具: Qt Designer、 Qt Assistant.、 Qt Linguist、 Qt Creator 命令行程序: ...
Qt Ultralight浏览器这是一款超轻量级的Web浏览器,由嵌入在应用程序中的 Web引擎作为自定义Webview小部件提供支持-QUltralight(Qt Ultralight) -QWebEngineView(Qt WebEngine)和QWebView(Qt WebKit)的轻量级...
Webkit内核探究 ;webkit介绍 ;应用程序如何利用Webkit;关于webkit入门介绍
这是MOD界面和后端的正在进行中的桌面应用程序,本机集成在OS中(无需外部Web浏览器)。 它需要mod-host和mod-ui ,您既可以在系统范围内安装它们,也可以作为此存储库的git子模块的一部分来安装。 在基于Debian...
通过使用Flask和QtWebEngine创建桌面应用程序。 理念 与其在用户浏览器中打开Flask应用,不如创建一个QWebview然后在其上运行Flask应用。 默认情况下,每个内部链接都是在应用程序内部打开的,每个外部链接都是在...
IOS平台:支持对IOS应用程序和浏览器应用程序(与一起)的嵌入式页面进行Web自动化测试。 Windows平台:支持基于Chrome,IE内核(与QT4C一起使用)的Web自动化,现在QT4C处于开源过程中。 QT4W包含三个模块:...
一个从命令行运行Qt应用程序 先决条件 :具有Webkit模块的Qt库 :茉莉花BDD 如何编译 确保您具有Qt开发环境 克隆存储库后,键入 cd src && qmake && make ./qasmine /where/jasmine/SpecRunner.html --verbose 您...
QT4W\nQT4W (Quick Test for Web) 是一个用于 Web 的 QTA 测试自动化驱动程序。\n特征\nAndroid平台:支持基于webkit、X5(配合QT4A使用)的web自动化测试。\nIOS平台:支持IOS应用和浏览器应用的嵌入式页面的Web...
而且近年来的版本逐渐集成了数据库、OpenGL库、多媒体库、网络、脚本库、XML库、WebKit库等等,其核心库也加入了进程间通信、多线程等模块,极大的丰富了Qt开发大规模复杂跨平台应用程序的能力,真正意义上实现了其...
在Qt 5.4.1官方原版源代码基础上针对MSYS2环境的MinGW编译器修改: 1.动态链接版本Qt可编译源码自带的ANGLE、webkit;...3.修正自主编译的Qt链接的程序在QtCreator中执行时无法找到window插件的问题
QT是一个跨平台的C++应用程序开发框架,在Windows平台上比MFC更简单,且很容易可以扩展到其他平台。 QT侧重于GUI程序开发,类似于MFC,不过目前QT能够支持更加广泛的功能: 数据库 硬件 XML WebKit 网络 多媒体 ...
应用程序。 对于 iOS 应用程序,请参阅 在 Linux 上构建 使用快速库构建 QGIS 从 QGIS 存储库检出master分支: 使用带有标志 -DWITH_QUICK=TRUE 的 Quick 库配置和编译 QGIS。 此外,您可以使用一些标志来加速构建...
Webkit 引擎的集成,可以实现本地界面与Web内容的无缝集成, 但是真正使得 Qt 在自由软件界的众多 Widgets (如 Lesstif,Gtk,EZWGL,Xforms,fltk 等等)中脱颖而出的还是基于 Qt 的重量级软件 KDE。 信号和槽机制...
作 者(英)萨默菲尔德 著,白建平 等译 出 版 社电子工业出版社 出版时间2011-4-1 ISBN9787121131103 第1章 混合桌面/Internet应用程序 1.1 Internet相关窗口部件 1.2 WebKit的使用 第2章 声音和视频 2.1 ...