我正在开发一个简单的QML应用程序,我注意到,与QML窗口相比,调整大小和移动窗口会产生难看的闪烁QtWidgets.
所以我创建了2个测试应用程序来显示差异:
QWidgets:

QML:

正如您所看到的那样QML,应用程序的版本闪烁得非常难看,而QtWidgets一个版本很干净.当你的用户界面越来越复杂时,现在这变得非常难看.
你对此有什么了解吗?这是一个错误吗?针对此问题是否有任何修复/解决方法?
我用最新的PyQt5 QuickControls试验,并试图通过QML申请材料风格解释这里和这里:
QQuickStyle::setStyle("Material");
Run Code Online (Sandbox Code Playgroud)
但不幸的是,我找不到在PyQt中对QQuickStyle类的任何引用来通过python代码应用样式,只有工作解决方案是为此指定命令行参数:
python app.py -style material
Run Code Online (Sandbox Code Playgroud)
有人能通过python脚本指出我正确应用QuickControls样式吗?
在Quick Controls 2.0应用程序中使用TableView是否可以?这将需要两个导入:
import QtQuick.Controls 1.4
import QtQuick.Controls 2.0
Run Code Online (Sandbox Code Playgroud)
我会得到任何副作用吗?
另一个相关的问题:似乎TableView属于Quick Controls 1.0集.是吗?是否意味着如果可以使用TableView,那么可以使用Quick Controls 2.0应用程序中的所有Quick Controls 1.0控件吗?
我想在Qt Creator中创建新的Qt Quick项目,我已按下New project,在向导中选择了应用程序名称和位置,但后来我对下一个向导的步骤(Qt快速组件选择)感到困惑,如屏幕截图所示:

我应该选择哪一套Qt Quick Controls 1.3,或Qt Quick 2.4?他们之间有什么区别?
我正在使用Qt 5.10.1和Qt Creator 4.5.1,并且样式属性在元素中永远不可用.
例如,如此处所示ButtonStyle QML Type,我想这样做:
Button {
text: "A button"
style: ButtonStyle {...}
}
Run Code Online (Sandbox Code Playgroud)
但是,我得到错误:
无法分配给不存在的属性"风格"
我尝试了一个矩形,进度条,我得到了同样的错误.
编辑#1:
我确实拥有所有这些进口产品.如果缺少导入,我会在ButtonStyle上得到错误,但错误是样式.
import QtQuick 2.2
import QtQuick.Controls 2.3
import QtQuick.Dialogs 1.0
import QtGraphicalEffects 1.0
import QtQuick.Shapes 1.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Styles 1.4
Run Code Online (Sandbox Code Playgroud) 运行我的程序时出现此错误。我在网上搜索QtQuick.Controls但找不到任何解决方案。
我该如何安装这个?
我想抓住我的QML应用程序的屏幕.但我的根QML对象是ApplicationWindow,所以我不能QQuickView用来显示它.相反,我必须使用QQmlApplicationEngine.我知道如何使用QQuickView(QQuickWindow::grabWindow)获取屏幕截图,但不知道如何使用它QQmlApplicationEngine.
我的main档案:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
ApplicationData appData;
QQmlApplicationEngine engine;
engine.load(QUrl("qrc:///main.qml"));
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
main.qml :
import QtQuick 2.1
import QtQuick.Controls 1.1
import QtQuick.Window 2.1
ApplicationWindow {
id: mainWindow
width: appData.screenWidth
height: appData.screenHeight
visible: true
Rectangle {
id: mainWindowBackground
color: "red"
anchors.fill: parent
}
//...
}
Run Code Online (Sandbox Code Playgroud) 我有一个TableView,我已经定义了自己的itemDelegate.现在,从这个委托中我可以使用styleData.value访问列的值,但是我还需要访问同一个项目中的其他属性,但我找不到如何操作.
我需要这个,因为文本样式需要根据项目模型的其他属性进行更改.
有任何想法吗?谢谢!
在Qt/C++中有QT_DEBUG定义宏来知道它何时在调试或发布时编译.
是否有任何方法可以知道应用程序是否在QML文件中以调试或释放模式运行?
qtquickcontrols ×10
qml ×9
qt ×9
qtquick2 ×5
qt-quick ×3
qt5 ×3
pyqt ×1
pyqt5 ×1
python ×1
qt-creator ×1
screenshot ×1