标签: qtquickcontrols

"模块QtQuick.Controls未安装"错误在Ubuntu 14.04上

我安装了最新的Ubuntu SDK并尝试使用Qt Quick Controls但它们不可用.然后我从https://qt-project.org/downloads安装了Qt 5.2.1并创建了一个选择了Qt Quick Controls选项的新项目.当我尝试构建和运行应用程序时,输出中出现以下消息:

Starting /usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene...
file:///home/george/Projects/untitled/untitled.qml:2 module "QtQuick.Controls" is not installed
Run Code Online (Sandbox Code Playgroud)

我尝试卸载Ubuntu SDK和Qt,然后从官方网站重新安装Qt但没有成功.Qt Creator或qmlscene似乎都找不到该模块.

这个问题的答案(https://askubuntu.com/questions/368507/are-qt-quick-controls-available-on-ubuntu-13-10)说"Trusty Tahr可能会有Qt 5.1或Qt 5.2 in它的存储库." 那个官方的qt项目包应该有效.

难道我做错了什么 ?这可能是Qt Installer的错误吗?

ubuntu qml qtquickcontrols

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

从imageprovider设置Button imageSource

我有一个图像提供程序派生自QQuickImageProvider实现requestPixmap.

此图像提供程序适用于Image组件.

现在我想以同样的方式提供imageSourcea Button.但没有图像出现.可能是什么问题?

QML代码

Image {
    anchors.fill: parent
    anchors.margins: 10
    source: "image://provider/" + model.DisplayRole
    fillMode: Image.PreserveAspectFit
}

Button {
    Layout.fillWidth: true
    Layout.preferredHeight: width
    iconSource: "image://provider/" + model.DisplayRole
    onClicked: appCore.switch(model.DisplayRole)
}
Run Code Online (Sandbox Code Playgroud)

C++代码

QPixmap ImageProvider::requestPixmap(const QString &id, QSize *size, const QSize &requestedSize)
{
    QModelIndex index;
    bool foundId = false;

    for(int row = 0; row < m_myModel->rowCount(); row++)
    {
        index = m_myModel->index(row, 0);
        QString name = QVariant(m_myModel->data(index, Qt::DisplayRole)).toString();

        if(name == id)
        {
            foundId …
Run Code Online (Sandbox Code Playgroud)

qt qml qtquick2 qtquickcontrols

5
推荐指数
0
解决办法
586
查看次数

QML表单布局(GridLayout)的麻烦

我现在正在尝试将我的应用UI从C++转换为QML.在某些步骤我需要一个登录窗口,所以我用QML创建它,代码如下:

Window {
    id: loginWindow
    property string username: login.text;
    property string password: password.text;
    property bool issave: savePassword.checked;

    flags: Qt.Dialog
    modality: Qt.WindowModal
    width: 400
    height: 160
    minimumHeight: 160
    minimumWidth: 400
    title: "Login to program"

    GridLayout {
        columns: 2
        anchors.fill: parent
        anchors.margins: 10
        rowSpacing: 10
        columnSpacing: 10

        Label {
            text: "Login"
        }
        TextField {
            id: login
            text: Config.getParam("user")
            Layout.fillWidth: true
        }

        Label {
            text: "Password"
        }
        TextField {
            id: password
            text: Config.getParam("password")
            echoMode: TextInput.Password
            Layout.fillWidth: true
        }

        Label {
            text: "Save password?" …
Run Code Online (Sandbox Code Playgroud)

qt qml qtquick2 qtquickcontrols

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

如何使QML可滑动内容隐藏在可滑动边界之外?

我有一个矩形,文本和垂直布局中的Flickable.当我垂直轻拂可轻弹的内容时,它会进入Text组件的前面.怎么能让它落后?在移出境外时,如何制作可滑动隐藏的内容?

qt qml qt5 qtquick2 qtquickcontrols

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

Qt 5 QML应用程序,包含许多Windows或复杂的UI

在使用QtQuick控件的QtQuick 2中,您可以创建复杂的桌面应用程序.然而,在我看来,必须在应用程序开始时声明整个UI并立即创建所有UI.您仍然不想使用任何您不想使用的部分(例如文件 - >打开对话框),但它们是隐藏的,如下所示:

ApplicationWindow {

  FileDialog {
    id: fileOpenDialog
    visible: false
    // ...
  }
  FileDialog {
    id: fileSaveDialog
    visible: false
    // ...
  }
  // And so on for every window in your app and every piece of UI.
Run Code Online (Sandbox Code Playgroud)

现在,对于简单的应用程序来说这可能没问题,但对于复杂的应用程序或具有许多对话框的应用程序,这肯定是一件疯狂的事情吗?在传统的QtWidgets模型中,您可以在需要时动态创建对话框.

我知道有一些解决方法,例如你可以Loader在javascript中直接动态使用甚至创建QML对象,但它们非常难看,你会失去优秀的QML语法的所有好处.你也无法真正"卸载"组件.那么Loader声称你可以,但我尝试过了,我的应用程序崩溃.

这个问题有优雅的解决方案吗?或者我只需要咬紧牙关并立即为我的应用创建所有潜在的用户界面,然后隐藏其中的大部分内容?

注意:此页面包含有关使用Loaders来解决此问题的信息,但正如您所看到的,它不是一个非常好的解决方案.

编辑1 - 为什么Loader不是最理想的?

好的,为了向您展示为什么Loader不那么令人愉快,请考虑这个开始一些复杂任务并等待结果的示例.假设 - 与人们通常给出的所有琐碎的例子不同 - 任务有很多输入和几个输出.

这是Loader解决方案:

Window {
    Loader {
        id: task
        source: "ComplexTask.qml"
        active: false
    }
    TextField {
        id: input1
    } …
Run Code Online (Sandbox Code Playgroud)

qt qml qt5 qtquick2 qtquickcontrols

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

如何在多行中安排TabView的选项卡?

来自:http://doc.qt.io/qt-5/qml-qtquick-controls-tabview.html#details

TabView 
{
    Tab {
        title: "Red"
        Rectangle { color: "red" }
    }
    Tab {
        title: "Blue"
        Rectangle { color: "blue" }
    }
    Tab {
        title: "Green"
        Rectangle { color: "green" }
    }
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,这些选项卡显示在水平栏中.如何在单独的行中显示它们?

像这样:
Tab1
Tab2
Tab3

而不是:
Tab1 Tab2 Tab3

qt qml qt5 qtquick2 qtquickcontrols

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

QML对话框坏了吗?

我有这个代码:

import QtQuick 2.3
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import QtQuick.Controls 1.2

Dialog {
    standardButtons: StandardButton.Ok | StandardButton.Cancel

    width: layout.implicitWidth
    height: layout.implicitHeight

    RowLayout {
        id: layout
        anchors.fill: parent

        Item {
            width: 10
            height: 1
        }

        GridLayout {
            columns: 2
            rowSpacing: 10

            Layout.fillHeight: true
            Layout.fillWidth: true

            Text {
                text: "Hello world? "
            }
            Text {
                text: "Hello world!"
            }

            Text {
                text: "Goodbye world? "
            }
            Text {
                text: "Goodbye world!"
            }

        }

        Item {
            width: 10
            height: 1
        } …
Run Code Online (Sandbox Code Playgroud)

qml qt5 qtquick2 qtquickcontrols

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

如何更改MenuBar的字体颜色?

如何更改QML菜单项的文本颜色MenuBar

import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2
import QtQuick.Controls.Styles 1.3 as QtQuickControlStyle

ApplicationWindow {
    title: qsTr("Test")
    width: 640
    height: 480
    visible: true

    property color menuBackgroundColor: "#3C3C3C"
    property color menuBorderColor: "#282828"

    menuBar: MenuBar {

        style: QtQuickControlStyle.MenuBarStyle {
            padding {
                left: 8
                right: 8
                top: 3
                bottom: 3
            } 
            background: Rectangle {
                border.color: menuBorderColor
                color: menuBackgroundColor
            }
            // font: // how to set font color to red?
            // textColor: "red" /* does not work …
Run Code Online (Sandbox Code Playgroud)

qt qml qt5 qtquick2 qtquickcontrols

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

如何在不使用MouseArea的情况下更改光标的形状?

我查看了类似的线程,但并没有太大帮助。

我使用QtQuick.Controls.Buttonin QML,将鼠标悬停在按钮上时无法更改光标形状!我想不使用实现此目的MouseArea。该怎么办?当我查看文档时,找不到cursorShape属性或类似属性。

cursor qml qt5 qtquick2 qtquickcontrols

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

QT 5.7 QML快速半透明矩形,一侧带有圆角

我想要使​​用Qt Quick QML的半透明矩形,但仅在一侧具有圆角。

这是我想要的矩形的形状。如果看不到,我可能会重叠2个矩形,一个带有圆角,另一个没有。但是,这不适用于透明度,因为重叠会变暗。

     ----------|
   /           |
 /             | 
|              |
|              |
|              |
 \             | 
   \           |   
     ----------|
Run Code Online (Sandbox Code Playgroud)

有人有什么想法吗?

qt qml qtquickcontrols qt5.7

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

标签 统计

qml ×10

qtquickcontrols ×10

qtquick2 ×8

qt ×7

qt5 ×6

cursor ×1

qt5.7 ×1

ubuntu ×1