标签: qtquick2

QML 2 中的 GroupBox 样式

我想在 QML 2 中设置 GroupBox 的样式,如下所示:

在此输入图像描述

我没有找到如何在 QML 2 中执行此操作。在下一页“自定义 Qt Quick 控件”中,没有有关样式标题的信息。

qt qml qtquick2 qtquickcontrols2

2
推荐指数
1
解决办法
5850
查看次数

Qt 显示应用程序(如果当前正在运行)

我正在创建一个单实例应用程序,该应用程序最小化到系统托盘,我想显示当前正在运行的实例,然后退出新实例。我怎样才能创建这个功能?

主程序

#include <QApplication>
#include <QQmlApplicationEngine>
#include <QIcon>
#include <QQuickWidget>
#include <QSystemTrayIcon>
#include <QQmlContext>
#include <QQmlEngine>
#include <QSystemSemaphore>
#include <QSharedMemory>

// Declare a user-defined data type to work with an icon in QML
Q_DECLARE_METATYPE(QSystemTrayIcon::ActivationReason)
Q_DECL_EXPORT int main(int argc, char *argv[])
{
#if defined(Q_OS_WIN)
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif

    QApplication app(argc, argv);

    QQmlApplicationEngine engine;

    QSystemSemaphore semaphore("deploy", 1);  // create semaphore
    semaphore.acquire(); // Raise the semaphore, barring other instances to work with shared memory

#ifndef Q_OS_WIN32
    // in linux / unix shared memory is not …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qtquick2

2
推荐指数
1
解决办法
2362
查看次数

QCharts 右侧第二个 Y 轴

ValueAxis我想在 的右侧放置第二个ChartView。文档指出“轴可以放置在图表的下、上、左或右”

然而,我在 的文档中找不到任何属性AbstractAxisValueAxis或者ChartView与此相符。只有 的alignment属性AbstractAxis引起了我的注意,但它是 const 并且不能在 QML 中修改:

Invalid property assignment: "alignment" is a read-only property

我可以看到在多轴示例中有一种 C++ 方法来设置对齐方式,但我正在寻找一种 QtQuick 方法来设置对齐方式。我在这里错过了什么吗?

qt qml qtquick2 qchart

2
推荐指数
1
解决办法
2475
查看次数

当按钮在 Qt Quick Controls 2 中独占时取消选中按钮

我需要制作AbstractButton应该是独占的可检查列表,但默认情况下我无法取消选中未选中任何按钮的已选中按钮。

现在我必须做这样的事情来模仿这样的逻辑:

Item {
    AbstractButton {
        id: oneButton
        checkable: true
        onCheckedChanged: {
            if(checked) {
                if(twoButton.checked || threeButton.checked || ...) {
                    twoButton.checked = threeButton.checked = ... = false
                }
            }
        }
    }

    AbstractButton {
        id: twoButton
        checkable: true
        onCheckedChanged: {
            if(checked) {
                if(oneButton.checked || threeButton.checked || ...) {
                    oneButton.checked = threeButton.checked = ... = false
                }
            }
        }
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

这很丑陋,如果能找到更好的解决方案那就太好了。

qt qml qtquick2 qtquickcontrols2

2
推荐指数
1
解决办法
1793
查看次数

QML:如何隐藏子菜单?

我有一些菜单,该菜单包含子菜单。在某些情况下,该子菜单应该是可见的。在其他情况下,该子菜单应该是不可见的。这个怎么做?

我尝试使用visible属性,但它不起作用。子菜单始终可见。在下面的代码示例中,如果单击鼠标左键,子菜单应该可见,如果单击鼠标右键,子菜单应该不可见。但这在两种情况下都是可见的。

import QtQuick 2.13
import QtQuick.Window 2.13
import QtQuick.Controls 2.13

Window {
    visible: true
    width: 640
    height: 480
    property bool visibleSubMenu : false

    Menu {
        id: contextMenu
        MenuItem {
            text: "Menu item"
        }
        Menu {
            title: "Sub menu"
            visible: visibleSubMenu
            MenuItem {
                text: "Sub menu item"
            }
        }
    }

    MouseArea {
        anchors.fill: parent
        acceptedButtons: Qt.LeftButton | Qt.RightButton
        onClicked: {
            if (mouse.button === Qt.RightButton)
                visibleSubMenu = false;
            else 
                visibleSubMenu = true;
            console.log(visibleSubMenu)
            contextMenu.popup()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

qt qml qt5 qtquick2

2
推荐指数
1
解决办法
735
查看次数

即使安装了 cmake 也找不到 QtQuick

我使用在线安装程序安装了 Qt 6.2.0,并选择了大部分模块进行桌面开发。我收到这个奇怪的消息:

/home/user/Qt/Examples/Qt-6.2.0/multimedia/video/mediaplayer/CMakeLists.txt:28: error: Found package configuration file: /home/user/Qt/6.2.0/gcc_64/lib/cmake/Qt6/Qt6Config.cmake but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT FOUND.  Reason given by package: Failed to find Qt component "Quick". Expected Config file at "/home/user/Qt/6.2.0/gcc_64/lib/cmake/Qt6Quick/Qt6QuickConfig.cmake" exists
Run Code Online (Sandbox Code Playgroud)

英语不是我的主要语言,我不确定最后一句话的真正含义:

"Expected Config file at <path> exists"
Run Code Online (Sandbox Code Playgroud)

实际上该文件存在:

$ ls /home/user/Qt/6.2.0/gcc_64/lib/cmake/Qt6Quick/Qt6QuickConfig.cmake 
/home/user/Qt/6.2.0/gcc_64/lib/cmake/Qt6Quick/Qt6QuickConfig.cmake
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它找不到 QtQuick,然后我不知道如何修复它......

c++ qt cmake qtquick2

2
推荐指数
1
解决办法
1610
查看次数

如何设置全局区域设置?

我正在写一个简单的计算器.逗号是我的默认语言环境中的小数分隔符.我想全局(对于所有TextFields)将小数点分隔符设置为点.而不是逗号,,以便我可以在a中输入点TextField.

我怎样才能做到这一点?

TextField {
    validator: DoubleValidator {
        bottom: 0.0
        decimals: 1
        notation: DoubleValidator.StandardNotation
    }
    placeholderText: "0.0"
}
Run Code Online (Sandbox Code Playgroud)

qt locale qml qtquick2

1
推荐指数
1
解决办法
1340
查看次数

设置FileDialog的默认起始目录

我试图FileDialog在QtQuick中设置一个默认的起始目录,但它不起作用(这意味着它总是打开可执行文件的目录):

property url defPath : "/home/saeid/Work/data";

FileDialog {
    id:dialogPosPath;
    selectFolder: true;
    title: "Please select folder";
    folder: defPath;
    //rest of stuff
Run Code Online (Sandbox Code Playgroud)

但是,如果我将文件夹属性设置为例如folder:shortcuts.home它工作正常!我不明白为什么.

文件说:

当前所选文件夹的路径.在调用open()之前设置此属性将导致文件浏览器最初位于指定的文件夹上.

关闭对话框后,还会更新此属性的值.

默认情况下,网址为空.

知道如何实现这个吗?

qt qml qtquick2 qtwidgets qtquickcontrols

1
推荐指数
1
解决办法
2151
查看次数

如何制作跟踪/控制任何布尔属性的QML切换按钮

我今天的QML/QtQuick练习是制作一个小ToggleButton小部件,我可以实例化它来监视指定的布尔QML属性的状态,并且当我点击ToggleButton时也切换该属性的状态.

到目前为止,我有我的ToggleButton组件:

// Contents of ToggleButton.qml
import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.4

Button {
    property bool isActive: false

    onClicked: {
        isActive = !isActive;
    }

    style: ButtonStyle {
        background: Rectangle {
            border.width: control.activeFocus ? 2 : 1
            border.color: "black"
            radius: 4
            color:  isActive ? "red" : "gray";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

....这是我的小测试工具,用于查看它是否按照我想要的方式工作:

// Contents of main.qml
import QtQuick 2.6
import QtQuick.Window 2.2

Window {
   visible: true
   width: 360
   height: 360

   Rectangle {
      property bool lighten: false;

      id:blueRect
      x: 32; …
Run Code Online (Sandbox Code Playgroud)

binding qt qml qtquick2

1
推荐指数
1
解决办法
2405
查看次数

QML文件中是否有Lambda支持?

我有这样的事情:

var arr = []
arr.indexOf(element => element.includes(''))
Run Code Online (Sandbox Code Playgroud)

QtCreator为此给出了错误。我的Qt版本是5.12,我正在使用QtCreator 4.8。

我可以在QML中使用这种lambda表达式吗?

javascript lambda qml qtquick2

1
推荐指数
1
解决办法
316
查看次数