是否可以在不使用Qt Creator程序的情况下使用Qt框架创建用户界面?似乎在使用这个程序时,一半的工作必须由你完成,那么为什么不从根本上学习它的工作原理(就Qt API而言)并自己实现这些程序?
在使用创建程序时(即自动包含类成员函数等),Qt似乎实现了XML文件并为您做了很多繁重的工作。我之前使用Java实现了GUI,并且不必涉及XML。 Java是否在幕后处理这个问题,或者Qt是否以不同的方式处理问题?
答案 0 :(得分:4)
Qt不仅仅是创建GUI的方法。有一个旧的QtWidgets模块,它与“经典”桌面UI小部件一起使用,并具有C ++ API。 XML文件只是描述界面的便捷方式,qmake将从XML生成C ++标头并为您生成许多样板文件。
如果您愿意,可以通过实例化各种QWidget
子类(QMainWindow
,QLabel
等)并使用其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