在我的应用程序中,我添加了带有pixmap的QGraphicscene,所有内容都在QGraphicsView中查看,滚动条处于关闭状态。
程序窗口比pixmap小,当我按下箭头键或移动鼠标滚轮时,pixmap正在移动
我如何禁用它,这样即使pixmap比窗口大,它也不会被键盘或鼠标移动,除非我使用我的事件进行移动
(我试图将interactive属性设置为false,但没有成功)我不知道是否有更简单的方法,但中等简单的方法是创建一个继承QGraphicsView类的类,并覆盖鼠标和按键事件
更
我有一个Qt项目,我想在源代码树之外输出编译文件
我目前有以下目录结构:
/
|_/build
|_/mylib
|_/include
|_/src
|_/resources
根据配置(调试/发布),我希望在build/debug或build/release目录下的build目录中输出生成的文件
如何使用.pro文件执行此操作?要更改目标dll/exe的目录,请在pro文件中使用此文件:
CONFIG(debug, debug|release) {
DESTDIR = bu
我有一个从QThread派生的对象,类定义包括Q_object宏。我在线程中创建了一个计时器,这样我可以在线程运行时偶尔进行一些检查;但是,超时事件从未发生
我也尝试过将计时器设为单次触发,但没有发出任何事件
默认情况下,事件是在线程中处理的,还是我需要做其他事情来处理它们
下面是我如何设置线程和计时器的代码:
void MyClass::run( void )
{
checkTimer_chA = new QTimer( this );
qDebug() <<
嗨,我是Qt初学者。我想在左边做一列图标,点击图标后,不同的形式和结果会出现在右边,我怎么做?我应该为此项目选择QMainWindow还是QWidget
我应该为此选择mainwindow还是widget
项目
如果您所描述的是窗口中唯一的内容,那么应该使用QMainWindow。如果你认为你将来会想重复使用这种安排,我会使用QWidget。将每组表单作为单独的QWidget实现可能会更容易(在Designer中;如果您是以编程方式构建GUI,只需将表单添加到QFrame中的QLayout中)
我一直在玩Qt实验室的Flickable类。我非常了解这个示例是如何工作的,但是我很难理解如何使用它来显示paintEvent中动态绘制的内容以外的其他内容
如果我有一个想要Flickable的按钮列表,有没有办法重新实现Flickable paintEvent来调用所有按钮的paintEvents
看起来Flickable类基本上能计算出哪些按钮是可见的,所以我要为每个按钮做的就是设置它的y位置,并告诉它在那个位置绘制自己
任何指针都将受到欢迎…在您的子类中,您需要重新实现SetScrolOf
有没有办法集成Qt和Physx以便我可以在Qt Creator中使用Physx?不幸的是,Physx是根据/MT(静态运行时版本)编译的,而Qt MSVC使用/MD。这意味着您必须使用/MT构建Qt MSVC静态构建。即使使用Qt的共享版本运行,您也会遇到以下警告和可能的错误:
defaultlib'LIBCMT'与其他lib的使用冲突…
此stackoverflow答案将帮助您开始qt静态构建:
要将PhysX库与Qt-MSVC一起使用(MinGW与PhysX不兼容),下面是一个qmake配置
我正在尝试为使用Qt开发的应用程序编写脚本,使用javascript作为业务逻辑,使用.ui文件作为GUI,但我面临两个问题
在ui中,我声明了一个QComboBox,我成功地将javascript函数连接到它来处理
诸如editTextChanged等信号。我想知道我无法从内部填充组合框
javascript代码,因为addItem函数不向脚本端代码公开
combobox.editTextChanged[action](ComboBoxChanged); // OK (action is "
我对一个简单的程序有意见。
我以这种方式打开一个Qfile对话框:
QFileDialog fileDialog(this);
fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
if (!fileDialog.exec())
return;
但是,它显示的是一个Qt对话框,而不是本机Windows对话框。我使用的是Windows7x64,我确实更喜欢本机对话框而不是Qt对话框,因为它有点花哨。然而,我读过,我发现这可以通过使用:
fileDi
因此,我已经在我的Windows7 64位机器上安装了QtSDK。然而,当我尝试运行一个简单的程序,如hello world,例如:
#include <iostream>
int main(....) {
std::cout << "Hello World\n";
}
(我的目录略有不同,但遵循相同的想法)
其中,MinGW Version是您正在使用的MinGW版本
现在我已经排除了这个错误,但现在我得到了错误:
iostream:没有这样的文件或目录
我正在将我的旧openGL代码(即时模式)迁移到Vertext缓冲区对象。
我意识到我需要使用OpenGL3API调用(GL\u ARB\u vertex\u buffer\u object)来实现这一点。
所以我打算使用GLEW作为扩展加载库
我的问题是,有没有一种特殊的方法可以为OpenGL3上下文初始化QGLWidget?您所说的“OpenGL3上下文”是什么意思
通过正常的上下文创建,您可以获得OpenGL对3.1版或更高版本的支持。现在,如果您想要实现核心规范的,那么您必须做一些工作
源文件显然在项目中,在我的其他类中
我为这个类定义了Q_对象,就像我的其他Qt类一样
我的类与其他类一起编译。然而,链接器在我的类的构造函数/析构函数的vtable上失败。检查linker命令:似乎从未生成或构建moc_Myclass.cpp。所以没有什么可以联系的
这怎么可能?为什么遗漏了它?令人不安的解决方案:当我从项目集中删除cpp/h文件,然后将它们添加回moc时,我的类开始正确生成,因此链接被传递
这显然是一个Qt项目癌症bug,但至少现在我知道如何治愈它。如果你使用qmake,我发现
标签: Qt
qmakeinstallation-path
这是在我最后一次任务中出现的。有人能解释为什么qmake在编译时静态地设置安装路径吗。这使得安装后无法更改安装文件夹的名称
这是否应该报告为错误,或者是有原因的?我不确定这是否是您的情况,但也可能是:
如果重命名Qt的安装文件夹,则必须调整“QTDIR”环境变量并更新“PATH”环境变量
(在Windows上:按[Win]+[Pause]=>Advanced=>Environment Variables)实际上,在Windows中,您的path变量只需要如下所示。路径=%QTDIR%\bin;。
我的自定义QListView具有绘制项目的委托。我想向某些行项目(如QLineEdit)添加一个live控件,该控件将始终显示在行中,并自动与列表一起正确滚动
由于项不是小部件,我无法将控件指定为“项”的子项,因此滚动将使控件留在QListView小部件内的固定位置
还有别的办法吗?
这可能吗?通常,当发生QEvent::EnterEditFocus事件时,代理创建(并定位)编辑小部件,然后在随后发生QEvent::leveeditfocus事件时销毁,并将数据发送回模型。然后,委托应使用新模型
标签: Qt
qt-creatorprivileges
我无法运行Qt creator的应用程序。它抱怨以下错误:
无法执行“”:请求的操作需要提升
My.exe文件上有Windows管理员屏蔽符号。我需要更改项目设置吗?我广泛使用Qt文件库来执行一些文件操作。如果您开发的应用程序需要管理员权限,您不能简单地从Qt creator运行它,它是在非特权帐户下启动的
您可以以管理员身份运行Qt creator
或者,您可以使用runas实用程序从QtCreator启动应用程序。
但在这种情况下,您将无法在QtCreator控制台窗口和调试应用程序中看到调
我是Qt新手,我计划使用ARM GNU工具链为我的ARM Cortex-A8处理器平台构建Qt库。我正在为嵌入式Linux使用Qt-everywhere-opensource-src-4.6.2,在该目录中,我必须首先使用./configure配置ARM架构和其他选项。我给出的选项是这样的-
./configure -embedded arm -xplatform qws/linux-arm-g++ -little-endian -webkit -no-qt3support -no-cups -
我需要每秒钟通过和Upd套接字发送Qt应用程序的状态。我怎样才能做到这一点?我应该使用QThread::sleep将QThread e子类化,还是有一种最佳方法?谢谢最后我用了一种不同的方法:
QTimer:
当插槽被调用时,我通过插槽发送所需的内容
QTimer iAmAliveTimer.setInterval(1500);
iAmAliveTimer.setSingleShot(true);
connect(&iAmAliveTimer, SIGNAL(timeout()), th
我有一个qt标签,默认情况下,其中有一个占位符图像:
self.label.setPixmap(QtGui.QPixmap(_fromUtf8("place_holder.jpg")))
有一个更新标签中包含的图像的功能,该功能是:
def selectFile(self):
image = QtGui.QFileDialog.getOpenFileName(None, 'Select Reference Image', '', '*.jpg')
self.label.setPixmap(Qt
我正在努力使之包括在内
我使用的是Linux x86;具有QtMobility的QtVersion 4.7.3
我已经安装了所有的libOpus、Opustool和Opusfile
但与vorbis和speechx等其他编解码器不同,QMediareRecorder在安装后不会列出Opus
这是因为QT多媒体套件不支持Opus吗?还是有办法解决这个问题?我目前的任务是尝试录制到Qt上的Opus编解码器
我刚刚从源代码构建了Qt库(在Windows上),看起来构建路径实际上已经构建到库二进制文件中了!这使得将二进制文件移动到另一台机器或目录变得困难(但并非不可能-请参阅)
我从未在我使用过的任何其他图书馆中遇到过这个问题,我想知道为什么会是这样?这仅仅是某个不明的unix“安装”问题解决方案的残余,还是有充分的理由呢?这些路径在windows上用于搜索插件、翻译等。
如果通过Qt安装程序安装Qt,安装程序中的一个步骤是修补二进制文件中的路径,使其包含安装路径。
您可以通过修补二进制文件来覆盖它们
我已经在Qt中嵌入了matplotlib图形(使用PySide作为绑定),并且正在使用draw函数重新绘制图形:
self.canvas.figure.draw()
我也在平移和缩放这幅图,并且一直在使用draw方法来显示从放大(使用set_xlim和set_ylim)到平移(拖放平移和开始平移)的新透视图。有没有办法重绘地物,但忽略重绘任何新绘制的点?当它平移时,我正在使用blit绘制新的绘图,但我希望确保在draw方法期间不会重新绘制,并且所有内容都尽可能高效地运行
编辑/更新:
下面是我
qml主页面如下所示:
Page{
id: mainPage
EmbeddedPage{ // this is the embedded page
}
DropDown{
id: dropDown
Option{
text: "1"
value: text
}
Option{
text: "2"
value: text
我有一个要添加动画的groupbox。
我创建了我的自定义组框类,并实现了鼠标进入和离开事件。
在鼠标输入时,我检查高度并通过动画减少或增加它,但似乎不起作用
int height = groupBox->height();
if ( height >= 40 ) // if height is already increased set , decrease it.
{
int groupBoxHeight = 15;
QProperty
标签: Qt
desktop-applicationqt5icu
我们有一个使用Qt4.8.4构建的桌面应用程序,它使用ICU。我现在将该应用程序移植到Qt5.2.1。我注意到一个新的配置选项:-icu。这有什么用?我正在试着决定我是否应该使用它
我读到它“支持ICU”,这是什么意思?这对移植已经在使用4.8.4下的ICU的应用程序有影响吗
如果有必要的话:我们计划在Windows、MacOSX和几个Linux发行版上构建
注意:我们的应用程序不使用webkit。Qt5使用ICU支持unicode。您可以在代码和Qt二进制文件hanks Dmitry之间共享I
我想用三个参数创建QHash:
QHash <int, QString, float> myhash;
如何高效地创建(在查找时间方面(我使用QHash的原因))上述数组。以及之后如何插入值
谢谢转发 使用QPair作为密钥:
QHash<QPair<int,QString>,float> myhash;
QHash-myhash;
插入值:
myhash.insert(QPair<int,QString>(1,"string1"),12.)
标签: Qt
drag-and-dropqgraphicsitemqgraphicstextitem
这是我第一次尝试使用Qt的拖放功能。我是一个初学者,这周我做了我的第一个子类化,尽管我以前做过其他两个Qt程序
我需要一个可移动的通过拖放QGraphicsTextItem来显示在连接到相应QGraphicsView的QGraphicsView上。因此,我可以检索项目的新位置
我已经查看了动画机器人示例和以下链接:
上面链接的代码很适合我。所以我重新实现了它,但在构建时,编译器显示了我不确定如何克服的所有类型的错误。我不知道从哪里开始,也不知道哪段代码不正确
出现错误的示例:
error: no
我正在尝试更改树元素选择的颜色。我已经能够成功地改变大部分的颜色
QWidget:item:selected {
background-color: red;
}
但在选定元素的左侧,也有默认的蓝色高亮显示,希望对此进行更改。如果您有任何建议,我们将不胜感激 从以下位置使用此代码:
这对我很有用:
QTreeView::branch:selected {
background-color: yellow;
}
这很接近,但这会导致树上的箭头消失
QTreeView::branch
我一直在努力为QT应用程序签名。我们更新了我们的代码到最新的5.4,我认为是RC1?我按照本页上的说明来确保框架结构正确。每个框架和插件都已单独签名,这让我比以前更进一步:
但现在,在我签署应用程序后,codesign说它已验证:
codesign --verify --deep --verbose=2 myapp.app
返回
// the following 2 lines are repeated for all libraries and plugins
-- prepared: p
我正在尝试将一些特定于应用程序的信息保存在设置文件中。表单大小和位置、主表单上某些复选框的状态等信息。我试图扩展QSettings类来实现这一点
这就是我到目前为止所做的:
appsettings.h
class AppSettings : public QSettings
{
Q_OBJECT
public:
explicit AppSettings(QObject *parent = 0);
void load();
void save();
bo
标签: Qt
qt-creatorprojects-and-solutionsqmake
我的项目.pro文件中有一个名为Deploy.pri的.pri文件
Deploy.pri:
include(part1.pri)
include(part2.pri)
如您所见,它包括另外两个.pri文件
这些pri文件以相同级别显示在Qt Creator项目窗格中:
我想知道是否有任何方法可以像树一样以嵌套和分层的方式显示它们?首先将模块嵌套到子目录中
TEMPLATE = subdirs
SUBDIRS += project1 \
project2
然后根据子目录
我正试图使它成为我在Qt中构建的GUI能够根据任何用户窗口重新调整大小。我知道这通常是使用布局管理器完成的,但是没有一个布局管理器适合我的需要。每个经理似乎都会创建不成比例的小部件。有没有什么方法可以让我的小部件和屏幕的某个百分比。我想保持我的小部件的当前相对位置,只是让它们按照相同的因素重新调整屏幕大小
有没有什么方法可以让我的小部件和屏幕的某个百分比
此外,设置和帮助很大。您可以实现自己的布局,该布局可以对初始布局进行快照,然后按比例调整大小。或者你可以告诉我们你想要什么布局,如果可能的话,
我想单击一个按钮,然后弹出一个对话框。该对话框来自Qml,具有一个标签,该标签由另一个JavaScript文件中的变量编号组成。当变量更改时,对话框应重新绘制,新编号将显示在对话框上
MyDlg.qml:
import "MyJs.js" as MyJs
Window {
id: myDialog
width: 300
height: 300
TabView {
id:myTabView
width: parent.width
我正在尝试执行一个简单的GET请求(使用修改过的用户代理),将响应返回到QML并执行JSON解析
实际上,它只在加载完成时返回页面内容,而不将其返回到QML
对不起,我的问题是noob。我不熟悉这门语言,我正在努力学习:)
这是我的密码:
Home.qml
function getRequest() {
[...]
console.log('Request...')
var jsonResult = JSON.parse(connectNet.connectUrl("http://myURL.
我正在尝试将自定义的QKeyEvent(如按键B)发送到我的QML文件中的项目(如文本字段)。这是我写的,但它不起作用。该项(TextField)似乎没有获取我的事件(我假设这是因为没有B字符附加到我的TextField文本中)。我在我的ClickHandler类中捕获点击信号,然后在我的handleClick槽中,我尝试将一个自定义事件发布到我的焦点项目,这是一个文本字段
ClickHandler.h
class ClickHandler : public QObject
{
Q_OB
标签: Qt
widgetstylesheetqtwidgets
是否可以从Qt Widgets应用程序的单独文件中获取样式表,如.CSS到.HTML?是的,这是可能的。您可以使用QFile加载任何文件,并在应用程序或任何小部件中使用setStyleSheet方法。是的,这是可能的。您可以在代码中使用 qfile < />代码加载任何文件,在应用程序或任何控件中使用 StestStaseLeSe>代码>方法,而不是使用C++来加载Qfile和加载,不可能在UI文件中添加引用。请参见样式表属性。但是如果你想从你的文件中加载QS,你应该实现你自己的逻辑。因为Qt是
我有一个带有IconMode视图、LeftToRight流的QListView,包装为true。
但是,当我调整小部件的大小时,出现了一个问题,即该项目没有重新发布。
有没有办法让它重播?非常感谢你的帮助
启动列表视图:
调整大小后的列表视图:
您需要设置调整大小模式
setResizeMode(QListView::Adjust)
默认值为“固定”而不是“调整”
看这里:
以及:
还有:谢谢你的帮助,我还有一个问题。我的模型中有1000个数据,当它调整大小时->它真的很重。有什么办法可以优
我只想在文本项中显示单词的前两个字符。
例如,我有一个单词列表(法语、英语、意大利语),我只想显示(FR、EN、IT)
如果我省略了文本,我总是会在结尾处得到三个点(…),我不希望这样
有什么想法吗
提前感谢您可以将剪辑设置为真,但是您需要使用宽度
所以我认为最好的选择是在JavaScript中实现一个小函数,只获取前两个字母
例如:
main.qml
import QtQuick 2.5
import QtQuick.Window 2.2
import "myscript.js" as MyF
我在我的h文件中创建了一个QHBoxLayout的列表,现在我想添加列表的QVBoxLayout所有元素。我认为这样做会奏效:
起初,我在列表中填入了一些元素
for(int i=0; i< COUNT; i++)
{
// create box
QHBoxLayout *hlayout_tmp = new QHBoxLayout;
// label for the box
QString name = "Channel ";
我想将Qt 5.6和osg 3.4与vs 2015集成
我试了很多次,但还是失败了。
有人成功地集成了它们吗?可能使用了错误的库
您需要在debug中使用以“d”结尾的lib(例如osgQtd.lib),在release中使用以“d”结尾的lib(例如osgQt.lib)能否提供一些示例代码,说明您尝试过的内容以及遇到的问题/错误?我只使用了osg示例osgviewqt。当我调试这个时,会有一个异常{在MYTEST.exe中的0x0FEE432F(osg130 osgQt.dll)抛出异常:0x
我正在使用Qt和一个。我想通过使用本机解释器。然而,Qt只支持SCXML的NULL、ECMAScript和C++数据模型。我的状态机有一个自定义数据模型
我想创建子类来支持我的状态机。我可以看到如何实现setup(),hasScxmlProperty(),setScxmlProperty(),以及scxmlProperty()函数来设置/获取数据模型中的值
但是,我不知道如何使其在我的自定义数据模型中正确地评估和其他特定于模型的项,例如使用或..
如何创建一个自定义数据模型,它不仅知道如何获取/
标签: Qt
destructorqgraphicsviewqglwidget
我看到许多关于使用OpenGL进行图形视图的Qt示例。
大多数样本如下所示:
MyGraphicsView::MyGraphicsView(......)
{
gl = new QGLWidget();
this->setViewport(gl);
....
其中QGLWidget*gl是MyGraphicsView的成员
我的问题是,在这之后我应该如何删除“gl”。
它会随着从QGraphicsView继承的类自动删除吗?
手动删除MyGraphicsView描述器中的“gl”会导致崩
标签: Qt
qtwebkitqtwebengine
如何在最新的Qt5.7WebEngine中单击按钮?
在过去的Webkit中,我们可以通过单击按钮来执行此操作:
QWebElement button = frame->findFirstElement("input[id=search]");
button.evaluateJavaScript("this.click()");
那么,如何使用QtWebEngine
谢谢您的建议。例如,您需要将查找按钮的代码移动到JavaScript
var button = document.quer
标签: Qt
pyqtqt5pyqt5desktop-application
我用它来获取操作系统信息,比如内核版本和操作系统名称,但也希望获取桌面环境(LXDE、XFCE、Luna、Aero、Aqua)。有什么方法可以做到这一点(在运行时)?谢谢你的帮助
编辑:我正在寻找一个跨平台的解决方案没有完全可靠的方法来做到这一点。您可以检查环境,如XDG\u当前桌面,DESKTOP\u会话,KDE\u完整会话和GNOME\u桌面会话ID。但不能保证它们会出现,确切的数值也(尚未)标准化。
下面是一个简单的ENML文件,用于显示单个图像-一个
这应该覆盖为ImageView小部件计算的“智能最小大小”,但没有区别
我是ENML的新手,所以我怀疑这是一个基本的误解
当调整周围窗口的大小时,我需要做什么才能获得ImageView以允许缩小大图像的尺寸
版本:
win32上的Python 3.6.3(v3.6.3:2c5fed8,2017年10月3日,18:11:49)[MSC v.1900 64位(AMD64)]
ENML==0.10.2
PyQt5==5.10.1
如果我添加
使用console,我想通过wFile函数中的getline函数将所需的用户输入写入一个文件,然后读取它。我在运行时遇到逻辑错误;作为用户写入的任何内容都不会输入到输出终端,并且不会成功执行更多步骤。显然,fwrite函数在库中具有此功能,但我希望以不同的方式编写自己的代码。我想我一定忽略了一点。代码如下:
#include <QCoreApplication>
#include <QDebug>
#include <QFile>
#include <Q
我想知道根据QML代码中的条件创建矩形、文本或按钮的最佳方法是什么
下面是一个伪代码:
import QtQuick 2.0
Item{
property string name = "rect" or "text" or "button"
id:root
if (name === "rect")
Rectangle {
//properties
parent: r
标签: Qt
signals-slotsqthreadqobjectqtcpsocket
我正在尝试使用QTCpSocket(telnet)从设备获取数据。
经过很多努力,我觉得我克服了一个问题,那就是Qtimer:starttimer不能从其他线程启动
但是,现在我遇到了另一个让我非常困惑的问题。
我在网上看过一些帖子,但对我没有帮助。
请通读我的密码,让我知道我的错误
fdu.cpp
#include "fdu.h"
#include "ui_fdu.h"
#include"fduprocess.h"
fdu::fdu(QWidget *parent) :
QMainWi
我最熟悉gdb命令行,并且非常喜欢它,而不是qtcreator的GUI调试器。qtcreator文档()说明:
在Qt Creator中,您可以使用调试器日志视图的左窗格进行此操作。按Ctrl+Enter时,文本光标下的行内容将直接发送到本机调试器。或者,您可以使用视图底部的行编辑
但是,当我查看“调试器日志视图”的左窗格时,在底部没有看到“行编辑”。我也不明白他们所说的“文本光标下的行内容”是什么意思。请参阅所附图片。有人能帮忙吗
我正在运行QtCreator 4.8.1
我在您的屏幕截图中没
为什么我会出错:
我使用Qt-Creator。桌面版Qt 5.9.7
输出:
23:02:13: Uruchamianie "/usr/bin/make"
g++ -c -pipe -g -std=gnu++11 -Wall -W -fPIC -DQT_QML_DEBUG -I../Kurs_STL_cpp0x -I. -I../../anaconda3/mkspecs/linux-g++ -o main.o ../Kurs_STL_cpp0x/main.cpp
../Kurs_STL_cpp
我如何在应用程序中设置图标大小,以便在用户使用屏幕缩放时仍能缩放图标
在我的应用程序中,主窗口中有一个QToolBar,它似乎使用24x24的图标大小。我有一些QToolButton,默认情况下图标大小为20x20,因此我必须手动将其设置为24x24,以便所有图标大小相同,使用setIconSize(QSize(24,24))。无需缩放即可正常工作:
当桌面启用某些缩放功能时,固定大小的图标不会缩放,如下所示:
我的另一个用例是在QLabel中显示图标,在那里我必须在将QIcon转换为QPi
标签: Qt
Qml
runtime-errorfinalinvalid-argument
我需要将两个玻璃杯上选择的时间转换为dateQML类型。我希望通过函数alarm\u time()返回生成的日期
我正在使用Date.fromLocaleString(locale,dateTimeString,format)函数进行转换。根据locale,不必指定参数
以下是简化代码:
Frame {
function format_number(number) {
return number < 10 && number >= 0 ? &