标签: qtwidgets

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

从Qt Framework开始,选择什么 - Widgets或QT Quick?

我有一个项目,想要接受它并选择QT作为首选的框架.我一直试图找出如何开始并安装Qt包(SDK和Qt Creator).问题是 - 我无法弄清楚Qt Quick和Qt Widgets的确切用例.我计划使用这些属性来实现项目的长期目的:

  • 它将是一个仅限桌面的 GUI应用程序.如果我想制作移动版本,我会以原生或HTML5为移动平台,而不是Qt.因此,与任何移动平台的代码库兼容性都不是我关注的问题.
    • 触摸UI和动画也不是功能集的一部分.但是,创建图形的下线支持会很棒(我总是可以使用QtWebkit和JS创建一些)
  • Windows是主要目标.目标用户可能不会使用Linux和Mac.
  • 它需要是可自我升级的 - 现在做出选择并不是一个问题,但如果有任何问题,一些知识会帮助我.我不介意完整的应用程序安装程序下载,但独立更新模块会好一点
  • 它需要与Web服务器通信以获取和上传数据(我认为HTTP将是Qt核心的工作,但我对Qt还不太了解).
  • 该应用程序需要具有内联编辑的表格,小图片库,菜单,多部分窗口,拖放支持等.我找不到任何关于Qt Quick的菜单.

考虑到用例,什么是更好的选择 - Qt Widgets还是Qt Quick?

关于我的一点点以及为什么选择Qt - 我已经离开C++近两年了,并且在Qt中没有做过任何严肃的事情但是Qt是一个比Java更好的选择(我不太喜欢).我再次缺乏Python经验.除了那个Python UI很糟糕,如果我必须为一个好的UI安装QT框架,为什么不在Qt中制作整个东西(考虑到我对C++没问题).所以Qt对我来说是更好的选择.由于该项目需要跨平台兼容,因此Qt对我的眼睛更具吸引力.

windows qt qtquick2 qtwidgets

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

Qt的父母是什么?

几乎每个QtWidgets类都可以拥有父级.通常,在对象初始化时设置父级是可选的.例如,如果我创建一个继承QWidget类的类,我将在构造函数上执行以下操作:

Widget::Widget(QWidget* parent): QWidget(parent) {
    hbox = new QHBoxLayout(this);
    yes_button = new QPushButton("&Yes");
    no_button = new QPushButton("&No", this);
    cancel_button = new QPushButton("&Cancel", hbox);
}
Run Code Online (Sandbox Code Playgroud)

我可以设置或不设置父级.我可以cancel_button成为一个孩子hbox.我也可以cancel_button成为一个孩子yes_button,但我认为这是一件坏事.

这有什么意义?而且,是否真的有必要为QWidget我创建的每个基类设置父级?

qt parent qtwidgets

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

cmake找不到qt 5.1.1

我刚刚为Windows 32位(MinGW 4.8,OpenGL)安装了Qt 5.1.1,并尝试将其添加到我的cmake中.但是CMake只是不想找到它,我不知道为什么.我错过了什么?我需要设置环境变量吗?

这是我的cmake:

cmake_minimum_required( VERSION 2.8.11 )
PROJECT(Blemmer)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
# Detect and add SFML
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules" ${CMAKE_MODULE_PATH})

set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
find_package(SFML REQUIRED system window graphics network audio)
# The QUIET option disables messages if the package cannot be found. 
FIND_PACKAGE(Qt5Widgets) 
add_subdirectory(Entity)
add_subdirectory(Engine)
add_subdirectory(Game)
add_executable(Blemmer main.cpp)

include_directories(${SFML_INCLUDE_DIR} ${PROJECT_SOURCE_DIR})
target_link_libraries(Blemmer ${SFML_LIBRARIES} Game Engine Qt5::Widgets)
Run Code Online (Sandbox Code Playgroud)

这是cmake-gui的输出:

CMake …
Run Code Online (Sandbox Code Playgroud)

c++ qt cmake qt5 qtwidgets

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

在QRubberband上实现调整大小句柄?QSizeGrip是否相关?

我想让我的QRubberband实例用户可以调整大小.我在这里看到了这个问题,但没有解决方案.

用例是用户可以在照片上拖出选择框,然后通过拖动QRubberband边距来更改几何图形进行微调,或者通过拖动选区重新定位现有几何图形.我已经实现了重新定位,但我想知道调整大小的句柄来改变QRubberband的几何形状.

可以在这里使用QSizeGrip吗?除此之外,是否有一种标准方法可以检查鼠标内边缘类型的事件,Qt或者以其他方式实现这一点?这是一个研究应用程序,不需要或保证在此功能上付出很多努力,但它会很好.

c++ qt qtwidgets

11
推荐指数
2
解决办法
3371
查看次数

QtWidgets.QFileDialog.getOpenFileName返回一个元组

我最近更新到了Qt5 for Python的新版本.在这样做时,我一直在根据已经发生的一些显着变化来改变我的代码.我希望能够深入了解我创建的这一行代码.这感觉就像是解决从函数中获取string而不是a 的问题的一种肮脏方式tuple.(注意[0]在行尾)

filename = QtWidgets.QFileDialog.getOpenFileName(None, "Open " + key + " Data File", '.', "(*.csv)")[0]
Run Code Online (Sandbox Code Playgroud)

我想要 filename = {str}'C:/.././.../format.csv'

filename = <class 'tuple'>: ('C:/.././.../format.csv', '(*.csv)')

python pyqt qt5 pyqt5 qtwidgets

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

为什么没有在python中导入就失败了

我是新手,刚开始学习Python编程:

import sys
from PyQt5 import QtWidgets

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)

    mainWindow = QtWidgets.QMainWindow()
    mainWindow.show()

    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,每个都可以.但是当我运行下面的代码时,它失败并显示以下错误消息:app = PyQt5.QtWidgets.QApplication(sys.argv)AttributeError:'module'对象没有属性'QtWidgets'

import sys
import PyQt5
if __name__ == "__main__":
    app = PyQt5.QtWidgets.QApplication(sys.argv)

    mainWindow = PyQt5.Qtwidgets.QmainWindow()
    mainWindow.show()

    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我的Python版本是2.7,我使用的是Qt5库,我的操作系统是OpenSUSE 13.2,当然是Linux的发行版.

python import pyqt5 qtwidgets

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

在Windows 10中不正确地缩放Qt桌面应用程序

我正在为Windows 10编写一个简单的Qt(Widgets)Gui应用程序.我正在使用Qt的5.6.0 beta版本.

我遇到的问题是它根本没有缩放到我的表面笔的屏幕上:

在此输入图像描述

这有点难以分辨,因为SO会缩放图像,但请注意停靠窗口小部件标题栏控制相对于窗口标题栏控件的小小.

来自Qt的这个链接谈到了扩展,但它主要集中在qml/qtQuick和移动应用程序上,而且似乎暗示在桌面QtWidgets应用程序中,QPainter将自动确定正确的缩放,这显然不是.

什么是确保桌面非qml Qt应用程序在高DPI监视器上正确扩展的最佳方法,特别是在Windows 10中?

c++ qt qtwidgets windows-10

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

在 CLion 中,Qt Console 和 Qt Widgets 可执行项目模板有什么区别

在 CLion 中,Qt Console 和 Qt Widgets 可执行项目模板有什么区别。我的直觉是 Qt Console 是 CLI,Widgets 是 GUI,但谷歌搜索尚未证实这一点。我希望这个 QnA 能够帮助未来的谷歌用户。

qt qtconsole qtwidgets clion

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

在 QtCharts 上显示文本

我正在使用 QtCharts 类制作折线图。我希望能够在图表本身上添加注释/文本。我怎样才能做到这一点?我找到了一个类似于我想要的示例“ https://doc.qt.io/qt-5/qtcharts-callout-example.html ” 有没有更简单的方法?

c++ user-interface qt qtwidgets

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