我将使用Qt编写程序进行一些图像处理,我希望它能够以非gui模式运行(守护进程模式?).我受到了VLC播放器的启发,这是一个"典型"的GUI程序,您可以使用GUI对其进行配置,但是non-gui当它在没有GUI的情况下运行时,您也可以在选项中运行它.然后它使用在GUI模式下创建的一些配置文件.
问题是这样的程序设计应该怎样?应该是一些程序核心,它是独立于GUI的,并且取决于它与GUI接口连接的选项?
我有一个组成调色板的类,并使用将其分配给应用程序QApplication::instance()->setPalette(QPalette palette)。
而且有效。
但是后来我尝试QPalette QApplication::instance()->palette()用来提取一些颜色。
但是这里不起作用,它只返回默认调色板,而不是当前调色板。
当我发现它按文档中的预期和描述工作时。
现在我只有两个问题:
QApplication::instance()->setPalette(QPalette palette)?PS:不,我不能将调色板保留在其他地方。
我正在尝试使用 pyQt5 获取对当前 QApplication 对象的引用,但找不到该函数。我对“pyQt get current QApplication”的搜索显示了有关如何创建 QApplication 的结果。所以我的问题是:
是否有全局 QApplication 对象,如果有,如何获得对现有(当前)应用程序的引用。
我问的原因是我想测试调试代码是否在 Qt GUI 应用程序中运行。然后,QMessagebox如果在 Qt 应用程序中使用该函数,我想调出一个来显示错误消息;或以其他方式向标准输出打印一条消息。
在 Qt GUI 应用程序中,QApplication::style()->objectName()将返回当前样式,例如“windowsvista”。
它如何/在哪里选择此默认样式,以及它使用哪些信息来决定?
尝试为我的QT应用程序设置图标时遇到一些麻烦。
该图标名为“ room.ico”,与源文件位于同一目录中。
这是代码:
#include <QApplication>
#include <QWidget>
int main( int argc, char *argv[ ] )
{
QApplication app( argc, argv) ;
QWidget fenetre;
fenetre.setWindowIcon(QIcon("room.ico")); // Nothing happens
fenetre.setWindowTitle("Heloo");
fenetre.show();
return app.exec() ;
}
Run Code Online (Sandbox Code Playgroud)
我尝试添加win32:RC_ICONS += room.ico,.pro file但是没有用。我也尝试过,"./room.ico"但仍然没有图标。
我试图用这个:
QPixmap pixmap = QPixmap ("room.ico");
fenetre.setWindowIcon(QIcon(pixmap));
Run Code Online (Sandbox Code Playgroud)
你猜怎么着 !!!它没有用...我只是QT的新手:p
任何建议将不胜感激,谢谢
我使用Qt3.3,我正在尝试创建一个没有显示的QApplication.我需要检查来自QSocket对象的信号,这就是我需要QApplication的原因.
我正在尝试做QApplication(0,0),但我得到"QApplication:invalid Display*argument.".
如何正确地做到这一点?
我在Android和iOS上的Qt 5.9.3上运行我的 Qt 应用程序。我想直接在 QML 文件上收听QGuiApplication::applicationStateChanged
如何使用连接侦听 QML 上的应用程序状态更改,而无需编写任何代码来从我的 C++ 类发出信号。
我想使用连接收听Qt::ApplicationState::ApplicationInactive和Qt::ApplicationState::ApplicationActive事件。在我的 QML 文件中使用类似的东西。
Connections {
target: something_but_what
onApplicationStateChanged: {
console.log("State changed", state)
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我刚刚在 Linux Ubuntu 20.04 LTS 中安装了 QTCreator,单击“文件”->“新建项目”->“应用程序”->“QTConsole 应用程序”。制作了first.pro 文件和main.cpp 文件。
第一个.pro 包含:
QT -= gui declarative
QT += widgets
CONFIG += c++11 console
CONFIG -= app_bundle
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
Run Code Online (Sandbox Code Playgroud)
main.cpp 包含:
#include <QCoreApplication>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
错误出现在 QCoreApplication 行中。
我有一个基于 a 的 QT 应用程序QApplication,假设我的应用程序有一个复杂的 GUI(QDialog,QMainWindow...)。
我的应用程序可以以两种模式运行:
我想知道如何在无头模式下启动应用程序(也就是说没有 GUI 可见)
从下面的非常基本的代码来看,我必须有什么论据才能允许这样做?
int main(int argc, char*argv[])
{
QApplication app(argc, argv);
// which option should I add to argv to run in headless mode
return app.exec();
}
Run Code Online (Sandbox Code Playgroud) 我有一个静态类,希望它有静态QSettings.但是在初始化时我得到一个警告:
QSettings* MySQLConnection::settings = new QSettings(QApplication::applicationDirPath() + "/config.ini", QSettings::IniFormat);
Run Code Online (Sandbox Code Playgroud)
QCoreApplication :: applicationDirPath:请首先实例化QApplication对象
作为一种解决方法,我QSetting在主函数的开头手动初始化.有没有更好的方法来初始化我的静态成员?
谢谢!
我找到了一种解决方案,以防止app.exec()在这里阻塞主线程。
我尝试实现此功能,但出现以下错误:
WARNING: QApplication was not created in the main() thread.
QWidget: Cannot create a QWidget without QApplication
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
PB是具有静态函数的类,该函数可初始化GUI。
pb.cpp:
bool PB::Init(int argc, char *argv[],
int ID) {
QApplication app(argc, argv);
PB PB(ID); // The constructor creates an instance of the pushbutton qt object
app.exec();
return true; // Do I even need this because app.exec() runs an infinite loop right?
}
Run Code Online (Sandbox Code Playgroud)
main.cpp:
int main(int argc, char *argv[]) {
std::thread first(&PB::Init, argc, argv, 0);
std::thread second(&PB::Init, …Run Code Online (Sandbox Code Playgroud)