标签: qtcore

循环中的 QtCore.QObject.connect 只影响最后一个实例

我有一个循环。我创建了一个QCheckBox并将其放入一个QTableWidget单元格中,一切正常。在循环的每一步中,我都connect为 myslot SLOT调用了一个函数,但只应用了最后一个QCheckBox实例。我用谷歌搜索了很多,发现很多人都有我的问题。我已经应用了他们的解决方案,但我的问题仍然存在。

for row in xrange(len(uniqueFields)):
    instance = QtGui.QCheckBox(uniqueFields[row], findInstance.tableWidget)
    print QtCore.QObject.connect(instance,
        QtCore.SIGNAL(_fromUtf8("stateChanged (int)")),
        lambda: findInstance.projectsInstance.myslot(
                    "TWCH", findInstance, instance.text(),
                    instance.checkState(), instance))
    findInstance.tableWidget.setRowCount(findInstance.tableWidget.rowCount() + 1)
    findInstance.tableWidget.setCellWidget(row, 0, instance)
Run Code Online (Sandbox Code Playgroud)

注意:我的connect函数 return True

如何connect在枚举所有的循环中创建函数instances

c++ qt pyqt qt-signals qtcore

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

Qt找不到Qt5Core Qt5Widgets等

我从网站上下载了离线Qt 5.1.1(32位)软件包.刚安装在我的Ubuntu 12.04机器上.我在Qt安装之前安装了build-essentials.

我在Qt Creator中打开了一个新的应用程序/ GUI项目来玩.还没有添加任何东西,所以它只有它的默认文件.我尝试使用Creator Build按钮构建它,它会抛出错误:

:-1:错误:在搜索-lQt5Widgets时跳过不兼容的/home/Me/Qt5.1.1/5.1.1/gcc/lib/libQt5Widgets.so

:-1:错误:找不到-lQt5Widgets <

对于QtCore/Gui文件也是如此.

决定打开Qt中包含的一个示例.然后建造它.它也抛出了同样的错误.

怎么了?我的额外阅读说了一些关于QT += widgets在.pos文件中添加一行的内容,但这似乎是在版本检查器中自动出现的.

我以为这将开箱即用?我错过了什么?

c++ qt qtgui qt5 qtcore

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

回答UDP数据包

我有一个UDP服务器使用以下代码:

void initialize() 
{
    connect(&_udpSocket, SIGNAL(readyRead()), this, SLOT(onUdpDatagram()));

    _udpSocket.bind(QHostAddress::Any, 28283);
}

void onUdpDatagram()
{
    qDebug() << "udp packet received!";
    _udpSocket.write("Hello");
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,当收到UDP数据包时,我在日志中有以下错误:

QIODevice::write: device not open
Run Code Online (Sandbox Code Playgroud)

如何使UDP套接字可写?我尝试为连接到发件人地址和端口的答案创建另一个套接字,但发送将不再使用28283端口...

任何的想法?

有关信息:我在MacOS 10.9上使用Qt 5.2.1

c++ qt qtnetwork qt5 qtcore

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

pyqtSlot的功能

我刚刚从这里阅读了有关pyqt5按钮的教程。和代码如下。有一个关于button.clicked.connect(self.on_click)和的问题@pyqtSlot()。如果我@pyqtSlot()从代码中删除,它仍然可以工作。但是,如果我button.clicked.connect(self.on_click)从代码中删除,该按钮将不起作用。那么@pyqtSlot()这段代码的功能是什么?

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot

class App(QWidget):

    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 button - pythonspot.com'
        self.left = 10
        self.top = 10
        self.width = 320
        self.height = 200
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        button = QPushButton('PyQt5 button', self)
        button.setToolTip('This is an example button')
        button.move(100,70) 
        button.clicked.connect(self.on_click)

        self.show()

    @pyqtSlot()
    def on_click(self):
        print('PyQt5 button click')

if …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt5 qtcore

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

要转换和格式化的字符串

目前我有这样的事情

float a = SomeQString.toFloat(); //QString has 2.37
Run Code Online (Sandbox Code Playgroud)

现在浮动是2.3690000031 ..

我想要的是2.3700000000 ..有关我怎么做的任何建议?另外我为什么得到2.369而不是2.37?

c++ qt qtcore

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

如何将GetLastError的文本表示形式作为QString?

GetLastError()可以某种方式传递给FormatMessageW格式化的消息.目标是最终得到一个QString.这样做的正确和安全的方法是什么?

winapi qt getlasterror qtcore

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

将 QVector 指针作为参数传递

1)我想将 QVector 的指针传递给一个函数,然后用它做事。我试过这个:

void MainWindow::createLinearVector(QVector<float> *vector, float min, float max )
{
    float elementDiff=(max-min)/(vector->size()-1);

    if(max>min) min -= elementDiff;
    else        min += elementDiff;

    for(int i=0; i< vector->size()+1 ; i++ )
    {
        min += elementDiff;
        *(vector+i) = min; //Problematic line
    }

}
Run Code Online (Sandbox Code Playgroud)

但是编译器给我 “不匹配的运营商=”*(vector+i) = min;行。在 QVector 上执行此类操作的最佳方法是什么?

2) 该函数应该以 matlab : 运算符的工作方式线性分布向量上的值,例如 vector(a:b:c)。在 Qt 中执行这些事情的最简单和最好的方法是什么?

编辑:

有了这里的帮助,最初的问题就解决了。:)

我也改进了方法本身。通过使用线性插值而不是像上面那样的多次加法,可以大大提高精度。多次加法会累积误差,而在很大程度上可以通过线性插值消除误差。

顺便说一句,第一个函数中的 if 语句是不必要的,即使在多重加法方法中也可以通过稍微重新排列一些东西来删除。

void MainWindow::createLinearVector(QVector<double> &vector, double min, double max )
{
    double range = max-min;
    double n =   vector.size(); …
Run Code Online (Sandbox Code Playgroud)

c++ qt qvector qtcore

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

QTimer的机制

假设这timer是一个对象QTimer,定时器的间隔是iInterval和定时器的超时信号连接到一个插槽sltTimeout().

我只是在想如果iInterval小于sltTimeout()运行时间会发生什么.结果会运行多个线程sltTimeout()吗?如果是这样,似乎可能导致对对象的非同步访问出现问题.

任何人都可以澄清一下吗?

c++ qt qt-signals qtimer qtcore

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

如何在qt中解码json

我想用qt解码以下json:

{
 "user": {
  "name": "string"
 }
}
Run Code Online (Sandbox Code Playgroud)

我试图用这个代码做,但不起作用:

QJsonDocument jsonResponse = QJsonDocument::fromJson(result.toUtf8());
QJsonObject jsonObject = jsonResponse.object();
QJsonArray jsonArray = jsonObject["user"].toArray();
foreach (const QJsonValue & value, jsonArray)
        {
            QJsonObject obj     = value.toObject();
            url          = obj["name"].toString();
        }
Run Code Online (Sandbox Code Playgroud)

c++ qt json qt5 qtcore

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

如何继承QVector?

我有一个名为Symbol的类,我想创建一个QVector子类(Symbols)来添加一些有用的方法.但是当我使用来自另一个类A的符号时,编译器会给出错误'符号没有命名类型'.

class Symbols: public QVector< Symbol >
{
public:
    Symbols() {}

    // Useful methods
    QSymbol findSymbol(const QString &name);

    // ...
};

class A
{
private:
    Symbols symbols;
};
Run Code Online (Sandbox Code Playgroud)

它是否正确分类?

为什么在编译A类时出现'符号不命名类型'?

c++ qt qvector qtcore

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

标签 统计

qtcore ×10

qt ×9

c++ ×8

qt5 ×3

pyqt ×2

qt-signals ×2

qvector ×2

getlasterror ×1

json ×1

pyqt5 ×1

python ×1

qtgui ×1

qtimer ×1

qtnetwork ×1

winapi ×1