使用Qt创建GUI

时间:2014-05-12 06:05:14

标签: c++ qt

是否可以在不使用Qt Creator程序的情况下使用Qt框架创建用户界面?似乎在使用这个程序时,一半的工作必须由你完成,那么为什么不从根本上学习它的工作原理(就Qt API而言)并自己实现这些程序?

在使用创建程序时(即自动包含类成员函数等),Qt似乎实现了XML文件并为您做了很多繁重的工作。我之前使用Java实现了GUI,并且不必涉及XML。 Java是否在幕后处理这个问题,或者Qt是否以不同的方式处理问题?

4 个答案:

答案 0 :(得分:4)

Qt不仅仅是创建GUI的方法。有一个旧的QtWidgets模块,它与“经典”桌面UI小部件一起使用,并具有C ++ API。 XML文件只是描述界面的便捷方式,qmake将从XML生成C ++标头并为您生成许多样板文件。 如果您愿意,可以通过实例化各种QWidget子类(QMainWindowQLabel等)并使用其API来完全用C ++完成所有工作。

(我不熟悉Java来回答这部分问题。)

但是,我建议你看看Qt Quick ,这样可以更好,更现代地处理GUI,并为您提供更多自由。 (使用起来也更轻松,更快捷。)

如果您想了解其中任何一个的更多详细信息,请写下评论:)

答案 1 :(得分:1)

是的,这是可能的。我不会就什么是最好的方式发表任何声明,因为我甚至不知道如何使用Qt Creator。就个人而言,我只是使用文本编辑器来创建源文件。我做了十年。我也同意你理解API和代码的结构。

答案 2 :(得分:0)

是的,这里有关于如何创建简单窗口和按钮的代码。

#include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
  QApplication app(argc, argv);
  QPushButton *quitButton = new QPushButton("Quit", 0);

  connect(quitButton, SIGNAL(clicked()), &app, SLOT(quit()));

  return 0;
}           

一个很好的Qt教程:

http://meetingcpp.com/index.php/br/items/an-introduction-into-qt-part-ii.html

答案 3 :(得分:0)

QtCreator,如果使用g ++编译器: 当代码中有错误时,允许右键单击错误列表,然后显示输出(O快捷方式)...您可以看到带有所有选项的g ++命令:

 g++ -c -pipe -g -std=gnu++0x -Wall -W -D_REENTRANT -fPIC -D_GLIBCXX_USE_CXX11_ABI=0 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../my-project -I. -I../../../anaconda3/include/qt -I../../../anaconda3/include/qt/QtWidgets -I../../../anaconda3/include/qt/QtGui -I../../../anaconda3/include/qt/QtCore -I. -I. -I../../../anaconda3/mkspecs/linux-g++ -o mainwindow.o ../my-project/mainwindow.cpp

因此它只在 build-your-project-title-Debug (或Release)中创建 MakeFile 。如果您编辑它,您将获得所有信息:

MAKEFILE      = Makefile

####### Compiler, tools and options

CC            = gcc
CXX           = g++
DEFINES       = -D_GLIBCXX_USE_CXX11_ABI=0 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB
CFLAGS        = -pipe -g -Wall -W -D_REENTRANT -fPIC $(DEFINES)
CXXFLAGS      = -pipe -g -std=gnu++0x -Wall -W -D_REENTRANT -fPIC $(DEFINES)
INCPATH       = -I../sans_titre -I. -I../../../anaconda3/include/qt -I../../../anaconda3/include/qt/QtWidgets -I../../../anaconda3/include/qt/QtGui -I../../../anaconda3/include/qt/QtCore -I. -I. -I../../../anaconda3/mkspecs/linux-g++
…

您可以重现它,或者只使用QtCreator来定义此MakeFile,然后在CLI下运行:

make