最近我改变了我电脑的主机名,现在每次我启动一个qt程序,我都会收到一条信息,上面写着
_IceTransSocketUNIXConnect:无法连接到非本地主机[我的旧主机名]
Qt:会话管理错误:无法打开网络套接字
但该计划仍然运作良好。只是启动起来很慢。我正在使用ubuntu 9.04。知道如何解决这个问题吗?我怀疑您的窗口管理器(通常是GNOME或KDE)保存了一个旧会话,该会话仍然引用以前的主机名(dev3)
处理该会话文件可能会解决您的问题。在KDE下,它们存储在“~$USER/.KD
我正在尝试使用QProcess启动Microsoft word,如下所示:
QString program = "WINWORD.EXE";
process->start(program);
但什么也没发生。
winword.exe位于路径上(因此,当我键入winword.exe时,word正在打开)。
这样做正确吗?来自Qt文档:
注意:进程已启动
异步,这意味着
started()和error()信号可能是
延迟。调用waitForStarted()使
确保流程已启动(或已启动)
启
我有一个简单的测试文件TestMe.cpp:
#include <gtest/gtest.h>
TEST(MyTest, SomeTest) {
EXPECT_EQ(1, 1);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
它按预期运行
但是,我无法在Qt中编译它。我的Qt项目文件,在同一目录中:
S
在Qt中,我尝试使用系统代理设置。这似乎工作得很好,只要我在应用程序打开时不更改它们
一旦我更改了系统代理设置,我必须关闭并重新打开我的应用程序,以获取新的代理设置
此错误记录在此处:
是否有任何已知的解决此问题的方法?这在较新版本的Qt中解决了吗(列出的错误是针对Qt 4.5提交的)?您可以查看系统代理的系统注册表值。这非常简单(据我所知),因为Qt有QSettings api,它可以让您快速访问注册表
有关注册表值的一些信息,请查看此文件
请查看此文件以获取一些QSettings的信息/示例
我想知道Qt中信号和插槽机制背后的设计模式
我在调解人和观察者之间犹豫不决
谢谢您……QT的信号和插槽是观察者模式的一个实现。如果你想更多地了解它,我建议你阅读能激发它并将其与增强信号相比较的书籍。否则,QT文档总是存在的
如果您想使用中介模式而不是观察者模式,那么使用QT来实现这一点就相当简单了。您必须在混合中添加一个中介类,并使其成为您感兴趣事件的观察者;i、 e.将插槽和大部分更新逻辑从常规观察者移动到调解人。是的,请参阅“好的”,谢谢。我问这个问题是因为我找到了这个链接,所以我有点困惑。
标签: Qt
Menu
focussignals-slots
在我的不止一个Qt应用程序中,我注意到,每当单击菜单栏时,GUI中小部件发送的最后一个信号都会在调用菜单操作之前重新发送。大多数时候,这并不重要;但在某些情况下,这非常重要
在少数情况下,小部件的信号连接到它自己的插槽中的一个,那么就可以直接用
if (hasFocus())
{
// ...
}
…阻止,以便忽略用户实际单击小部件时未产生的此类虚假信号
然而,我最近发现,这种行为导致了几个相关的bug,其中虚假信号在被执行之前会通过程序的几个层传递,因此简单地检查特定的小部件是否具有
我想把文本放在一个气泡中,我希望我的气泡等于文本宽度,但是如果文本长度太长,我希望文本自动换行并等于父宽度
此代码有效,但如果文本太长,则文本不会换行:
Rectangle {
id:messageBoxCadre
width: (modelData.messageLength>25)? (wrapper.width - 20): messageBox.width+10
height: messageBox.height+5
color: modelData
我有一个库,我希望它根据我所处的配置(调试或发布)将自己复制到一个目录中。这是我的项目文件
#-------------------------------------------------
#
# Project created by QtCreator 2011-08-13T12:48:33
#
#-------------------------------------------------
TARGET = JECLibrary
TEMPLATE = lib
DEFINES +=
我想将QTableWidget的“!active”背景色设置为与“active”颜色匹配。我试着这样做:
QTableWidget::item:selected:!active{
background-color:QTableWidget::item:selected:active;
}
但它似乎不起作用。有没有办法将一个属性的值设置为另一个属性的值
谢谢
David无法从样式中引用其他样式。我可以想出两个选择:
1) 从代码中修改QTableWidget的Qpalete。Qpalete对象将
我尝试将QAbstractListModel子类化,以存储每个项都有一个字符串和一个bool的项。在我看来,复选框是虚线而不是实线,我可以选中以前未选中的复选框,但无法取消选中已选中的复选框
我还需要做些什么才能让它们像正常的复选框一样工作?在我看来,您的bool-Qt::CheckState转换出错,最终在想要检查Qt::的地方使用Qt::PartiallyChecked(值1)
从data()实现::
if(role == Qt::CheckStateRole)
{
return
我有一个问题,纹理-它加载正确的图像,但渲染垃圾的几何体。几何体本身绘制得很好(一个简单的三角形),但无论我加载哪个纹理,它都只是在三角形上吐出随机图案
我在MacOSX上使用g++4.2.1,使用Qt4.7和OpenGL
首先,这里是控制台输出:
BallGLWidget::initializeGL called
Image format is GL_RGB
Checking textures...
glGetError enum value: GL_NO_ERROR
此外,我的着色器初始
标签: Qt
qabstractitemmodelqvariantqstandarditemmodel
我需要在Qt中实现一个表,在特定列的每一行上显示一个QComboBox
基于这个问题:我成功地创建了一个QItemDelegate。在该示例中,QComboBox内容是在ComboxDelegate类上静态定义的,但在我的示例中,我需要在创建QStandardItemModel的函数中定义QComboBox内容
模型在主窗口中定义类方法:
void MainWindow::fooHandler() {
QStandardItemModel* mymodel = new QStanda
我正在开发一个QML应用程序(blackberry 10),并且有一个如下的QML文件:
import bb.cascades 1.0
Page {
content: Container {
id: containerID
Button {
id: button1
text: "text"
onClicked: {
以下是迄今为止我的OpenGL绘制代码:
void color(QColor & col) {
float r = col.red()/255.0f;
float g = col.green()/255.0f;
float b = col.blue()/255.0f;
glColor3f(r,g,b);
}
void paintGL_XYRegularSurface(XYRegularSurface &surface, float zmin, f
我从文件加载网页,然后替换其中的一些html:
self.template_web_page = QtWebKit.QWebPage()
self.template_web_page.mainFrame().load(QtCore.QUrl('template.html'))
def load(ok):
main_window.web_view.loadFinished.disconnect(load)
self.table_element
我正在尝试在Qt中创建一个boost::thread应用程序。
这是我的密码:
#include <iostream>
#include "boost/thread.hpp"
#include "boost/bind.hpp"
using namespace std;
class A {
public:
void tf() {
for (int i = 0; i < 100; ++i) {
cout << i &
我想实现我自己的半透明滚动条,它在QListWidget的顶部绘制,而不是占用其视口中的永久空间。我不希望使用QML作为我的QListWidget,它的动态内容已经在6个月的时间里完全开发好了
我怎样才能做到这一点。样式表在这方面是无用的,因为它们不会决定滚动条的位置。我希望它位于QListWidget的顶部,而不是它的一侧,占用它的空间
我说的是这附近的一些事情:
任何关于如何做到这一点的提示都将不胜感激 你想做的是一个完美的例子,说明了qt一直困扰着我的一件事——如果有一些qt的设计师没有
标签: Qt
Qt4
pyqtpyqt4pyside
我有一个python的字节数组
b=b‘你好’
我想用它作为QtextStream的参数来创建一个QtextStream对象,但是QtextStream接受的是Qt的字节数组而不是Python的。我想知道有没有办法将Python的字节数组转换成QByteArray
我已经测试了下面的代码,似乎我不能用这种方式来做
>>> b=b'hello'
>>> from PyQt4.QtCore import *
>>> c=QTextStream(Q
我想知道如何通过代码在另一个小部件中升级小部件。我知道可以使用设计器,但我希望小部件是动态的,因此我必须在代码中更改它。删除旧小部件,然后创建新小部件并将其放置在旧小部件所在的位置
您不能保留旧对象,而只是更改其类。向上投票。qt创建者不做其他事情,它只将一个已知的泛型类显示为占位符,但在生成的代码中仍然是:myWidget=newmywidgetclass();
我需要使用QT libraray还是可以使用WinAPI之类的内置函数来实现-
HWND hwndButton1 = CreateWindow(L"BUTTON",L"NEXT",WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,550,800,100,30,m_hwndPreview,(HMENU)buttonid1,(HINSTANCE)GetWindowLong(m_hwndPreview, -6),NULL);
HWND
使用以下代码隐藏一行
field.hide()
formLayout.labelForField(field).hide()
上述方法的一个缺点是,当行中的项目被隐藏时,行上方和下方的间距保持不变,即隐藏行上方和下方的行看起来比布局中的其他项目分散得更远。如何在QFormLayout中隐藏行后删除剩余间距?隐藏:
field->hide();
label->hide();
formLayout->removeWidget(field);
formLayout->remo
标签: Qt
Qt4
qt5signals-slotsqlistview
我创建了一个简单的QListView添加了一个QStringListModel,允许添加项目并编辑其文本。但我不想允许添加空字段,我通过使用模型中的dataChanged信号部分实现了这一点,如果列表项失去焦点而未插入文本,或者用户按下Enter键而未添加文本,则会发出该信号
但是,如果按下Esc键,字段将保持为空,并且不会发出dataChanged信号。如果字段为空,而不重载QListView类(这将是一个繁琐的过程)(我使用设计器创建表单),如何得到通知
是否有其他信号发出,或者我可以使用其
如何在QML中进行选项卡顺序导航
例如,我有这样的代码:
TextInput { id: one }
TextInput { id: two }
TextInput { id: three }
我需要按tab键,将焦点从“一”移到“三”,这在官方文件中还没有发现
TextInput {
id: one
KeyNavigation.tab: three
}
本页记录了QML中的关键导航,并提供了以下示例:
嗯,奇怪的是,它不是用于选项卡导航,而是用于控制。
标签: Qt
dialog Qt4
modeless
我在类的方法中创建了一个无模式qdialog:
//Test.cpp
QDialogMaintenance *diag = new QDialogMaintenance(this);
diag->show();
diag->raise();
diag->activateWindow();
我只能在对话框框中单击“X”图标来关闭对话框。如何删除test.cpp中的“diag”实例?您可以使用并设置Qt::WA_DeleteOnClose属性
使Qt在小部件接受关闭事件时删除此小
标签: Qt
Qml
qmediaplayerqiodevice
我正在寻找在QML中实现视频播放器应用程序的最佳方法。几乎所有QML示例都是从文件系统或web读取文件:
MediaPlayer {
id: mediaplayer
source: "groovy_video.mp4"
}
VideoOutput {
anchors: parent.fill
source: mediaplayer
}
< >我想指定我自己的源代码媒体播放器< /C> >一个C++ QObjult派生类,它的接口类似于代码> QooDea//
我使用QtCreator 5.2并在MacOS10.9上安装qwt6.1.0。我遵循,并成功安装了qwt6.1.0。
我使用以下命令:
cd $QwtDir
qmake -spec macx-g++
make
sudo make install
sudo ln -s /usr/local/qwt-6.1.0/lib/qwt.framework/qwt /usr/lib/qwt
但当我编译程序时,会出现以下问题:
dyld: Library not loaded: qwt.framework/V
标签: Qt
qgraphicsviewqgraphicsitem
我有一个自定义行项目,它是QGraphicsLineItem的子类。当行项目边缘发生鼠标移动事件时,我会相应地旋转或调整行的大小。我的问题是,在执行旋转或调整大小之前,行项目存在于具有P1(0,0)和P2(x,y)的局部坐标系中
当P2用作调整大小和旋转的锚点,并且将鼠标放置在P1上时,P1接受鼠标事件->pos()坐标。完成调整大小后,我需要将行项目转换为局部坐标系。我该怎么做?我尝试使用setTransformOriginPoint(event->pos()),但它无法将P1转换为原点
用于
标签: Qt
undo-redoqtabwidgetqtextbrowser
我想创建multitab文本和html编辑器。我遇到了问题:我需要对每个文本浏览器分别执行撤消/重做操作。但是这些操作一次应用于所有窗口。如何修复它?如果您使用的是QTextEdit,则可以通过设置QTextEdit::setUndoRedoEnabled(true)来启用撤消重做仅触发当前\指定选项卡上的操作。@UmNyobeQTextEdit*currentEdit=qobject\u cast(tabWidget->widget(tabWidget->currentIndex())这是获取
我已经创建了自己的qsqlite.dll,我想在一个Qt项目中使用它而不是Qt的qsqlite插件。我不想替换Qt的qsqlite.dll。如何做到这一点?为了使用我自己的qsqlite.dll而不加载Qt的qsqlite.dll,我应该在pro文件中更改什么?Hi,您只需使用此处提供的源代码重新编译Qt-Sqlite插件:我已经重新编译了Sqlite插件,我已经有了qsqlite.dll。但我无法从自定义位置加载它(例如从d:\QTDev\3rdparty\bin)。如果我用我的qsqlite
我正在学习使用PyQt5(在Windows上)构建GUI。
我在PyQt4(而不是PyQt5)中偶然发现了一段代码,并将其显式翻译为UTF8:
通过谷歌搜索,我发现trUtf8已被弃用,现在Qt5假设您的代码已经是UTF8格式的():
所以,我想知道我应该做些什么来遵守这个声明
即使我不是在寻找面向vim的解决方案,我也要补充一点,我正在使用vim来开发我的代码。因此,我在设置中添加了以下选项:
set encoding=utf-8
set fileencoding=utf-8
是否正确,是否
我正在尝试将项目添加到QGraphicscene,并在以后移动它们。我使用QMainWindow和Qframe来组织窗口的内容,我可以添加项目,但不能移动项目。在教程中,我发现作者使用QDialog和QgraphicsView作为唯一的小部件。这就是区别所在吗?QMainWindow不将鼠标事件传递给GraphicsView或QGraphicscene?谢谢你的帮助
def _add_area(self):
item = QGraphicsRectItem(0, 0, 100, 100)
我想为我的QML窗口设置最小大小。但是如果我在main.qml中设置了最小宽度和高度,那么我得到的窗口的最小尺寸比我设置的&预期的要大。
问题在于,最小大小应用于窗口框架内的视图,而不考虑窗口框架和标题大小
ApplicationWindow{
id:应用程序
最小宽度:1024
最低高度:768
可见性:“最大化”
}可能使用Qt::FramelessWindowHint隐藏帧(或者如果使用qml查看器,则使用-frameless)?我猜这是因为框架是操作系统窗口系统的一部分
刚刚发现,可以
我在尝试组合Qt和VTK时出现了著名的链接错误。我已经完成了正确安装带有VTK的Qt的所有步骤,因此我不知道可能会出现什么问题
我在visual studio上使用带Qt5和VTK 6.3的windows 8
以下是我得到的错误:
Drawing.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: __thiscall QVTKWidget::QVTKWidget(class QWidget
标签: Qt
shadowqgraphicsitem
我想对QGraphicsItem应用内部阴影效果
我正在寻找类似QGraphicsDropShadowEffect的东西,但是要寻找内部阴影,而不是阴影
谢谢。有人能帮我吗?
标签: Qt
qt-creatorqt-designer
我创建了一个简单的表单对象,表示任意的名称和值对:
它有意地非常简单——任何设计都要通过CSS样式应用。除了UI之外,表单还包括C++类,它处理设计器中定义的数据加载和自定义属性——数据源(例如主机名)的名称。
所以我有两个值需要参数化:
名称——QLabel文本
数据点-一些主机名。这将稍后被C++类加载并告诉它应该加载什么数据
我想象我能够在designer中手动创建表单的“实例”,并为它们分配参数。就像这个虚构的形象:
不要忘记datapoint是自定义的动态属性。我确信所描述的
我想读取Qt中的.can文件,我发现它与ini文件类似,所以我使用了QSettings::ini格式,我查找两个属性(比如“rate”和“name”)。
代码:
对于(int i=0;i我不知道。可以文件,我搜索了一些关于它们的信息,但找不到与ini格式相关的任何信息
无论如何,我重写了您的代码,以输出它在每次遇到rate后找到的第一个name属性
bool rateAttrFound = false;
for(int i=0; i<files.count();i++)
{
QS
我在地图上找到了这些线
为了使QtWeb引擎为5.6编译,我需要删除这些行。因为我不知道为什么qtwebengine qmlplugins、qtwebengine插件和qtwebengine示例都从构建中消失了。因此,当这些行尝试从插件目录中删除文件时。它返回错误
有人能解释一下他们的意思吗?尤其是sedone。Qtwebengine 5.6中的Qtwebengine插件、qmlplugins和示例发生了什么
do_install_append() {
rmdir ${D}${OE_QM
我正在开发一个简单的应用程序,用于在OSX上安装Python3和PyQt5的茶定时器。出于美观的原因,我决定拆除窗框。为了保持窗口的可移动性,我重载了mousePressEvent()和mouseMoveEvent()处理程序
但是,当鼠标在其中一个按钮(QPushButton())上移动窗口时,我遇到了一个问题。然后光标跳到最后一次单击的位置,窗口从此位置移动。有人知道为什么会这样吗?有趣的是,在QLabel()对象上单击并移动时,不会出现相同的问题
如果您想尝试一下,下面是一个示例代码:
#
我用菜单和工具创建了一个QMainWindow:
import sys
from PyQt4 import QtGui
class Example(QtGui.QMainWindow):
def __init__(self):
super(Example, self).__init__()
self.initUI()
然后,我通过快捷方式创建了一个quit操作:
def initUI(self):
exitaction=QtG
我正在尝试为TableView中的行构建一个简单的委托。
我希望它在鼠标悬停时显示边框,在选中时留下边框。见下面的代码:
Component
{
id: rowDelegate
Item
{
height: 40
Rectangle
{
id: rowRectSel
anchors.fill: parent
color: "grey"
radius: 2
我有一个类DragQLineEdit,它继承了QLineEdit
我已将数组定义为:
DragQLineEdit m_textEdits[FAVORITE_ROWS][FAVORITE_COLUMNS];
因此,我能够生成编辑文本框的网格。好的
但是当我想改变第一个编辑文本框的颜色时,比如说:
m_textEdits[0][0].setStyleSheet("QLineEdit { background: rgb(255,255,255); selection-background-color
我犯了一个错误
undefined reference to `QwtPlot::QwtPlot(QWidget*)'
当我试图构建我的项目时,即使在设置中一切看起来都很好
在我的CmakeLists.txt中
include_directories(
[...]
${QWT_INCLUDE_DIR})
指向我的Qwt标题所在的位置
及
因为QWT_FOUND设置为True,所以有效
这是我的FindQwt.cmake:
#MESSAGE("Searching for QWT")
F
我正在与一家公司合作,创建一套使用SSE指令的专用代码。他们正在使用Qt Creator IDE。我为他们提供了一个C头文件和相应的*.C文件,它们在XCode和Visual Studio中编译;它们不在Qt Creator中编译
如何更改适当的编译器设置,以便SSE指令在Qt Creator中编译
导致第一个错误的行如下所示:
_mm_store_ps(outData, _mm_add_ps(*l, *r));
错误语句如下所示:
Inlining failed in call to alw
我有一个包含Qt3DWindow()的QWidget。我希望能够在Qt3DWindow中,在将鼠标悬停在窗口上的同时,使用鼠标滚轮“放大”Qt3DWindow中的QtEntity
我有工作的功能,但只有当鼠标悬停在Qt3DWindow框架之外时。下面是我初始化窗口和处理鼠标滚轮事件的代码
窗口初始化:
mainView = new Qt3DExtras::Qt3DWindow();
mainView->defaultFramegraph()->setClearColor(QColor
建议的解决方案是启用,这似乎解决了问题,尽管我注意到在使用单引号作为数字分隔符时,自动代码格式化(Ctrl-I)存在一些问题。此外,#ifdef也有一些问题(解决了关闭/重新打开文件的问题)我在Ubuntu上使用QT Cale4.4.1,你使用过CLAN代码模型吗?见创建者C++的设置。不能在这里测试,因为我没有安装Clang。我在使用QTCRORKER 4.5。不,我没有安装Clang。谢谢你的伟大回答。
#include <QCoreApplication>
#include &
我已经创建了一个QML UI,它有一个拨号盘和一个自定义控件。自定义控件基本上是一个带有MouseArea的进度条,允许用户通过单击来设置值。作为Qt,只要我在MouseAreaclick处理程序中从Javascript分配给自定义控件的值,我就会丢失它和拨号之间的声明性绑定
是否可以使此绑定双向,甚至更好,将两个控件的值链接到QML层次结构中两个控件上方的单个值?是否可以使用声明性语法来实现这一点,这样我就不会在每个控件中都有复杂的事件处理程序代码
import QtQuick 2.9
imp
我知道必须隐式设置“width”属性,elide才能工作。但是,我在布局中有一个文本元素。当文本太长时,我想截断它。启用从右到左的用户界面时,如何在文本类型中使用elide(仅供参考,我使用的是LayoutMirroring.enabled:Trueproperty)
此外,通过这种方式,当我隐式地将width属性设置为某个值时,我会看到对齐问题。
问题是,对于阿拉伯语,它可以正常工作,但有时英语文本没有阿拉伯语翻译,需要与阿拉伯语的行为相同(这意味着它们必须从右对齐),但英语文本仍然从左对齐
标签: Qt
Qml
qtquickcontrols2
使用键盘上的TAB&SHIFT+TAB在自定义控件上循环activeFocus时遇到问题。当我有一组自定义控件时,TAB键总是传递给父控件,而不是在我的自定义控件上更改activeFocus。然而,当我使用(比如)一个文本字段时,焦点会像预期的那样在控件之间循环
以下是一个基于以下内容的示例:
主窗口.qml
import QtQuick 2.12
import QtQuick.Controls 2.12
Rectangle {
color: "white"
wid
标签: Qt
Qml
background-musicsoundeffect
我正在使用Qt5.14.2运行一个QML应用程序,注意我的音效不会播放(生成声音),除非我也播放背景音乐。我已通过控制台日志确认没有错误、有效的音频文件等(11 kbps、16位PCM、1通道、wav)。我还尝试了41kbps的采样率,没有变化
我可以用Win32和安卓a8复制这个。音频文件是资产文件(不是QRC)
示例代码:
SoundEffect {
id: effect
source : "click.wav"
loops : 1
vo
我正在编写一个QML应用程序,用于在蓝色矩形内绘制棕色块。应用程序使用列布局和中继器执行此任务,以绘制任意数量的块(默认为4个):
我试图在用户单击屏幕以强制UI绘制不同数量的块时,动态更改中继器的模型。每当通过blockCount更改所需的块数时,它都会触发重新计算blockHeight,即每个块的高度,以便较小的块数可以占用屏幕上更多的空间。至少这是理论
出于调试目的,单击屏幕将块计数设置为2
这是一张示例图像,左侧显示预期结果,右侧显示当前结果:
如上图所示,当单击发生并执行rectId.