小编eyl*_*esc的帖子

如何在 Qt 5 中写入和读取 QResource 文件?

很奇怪,我通过添加现有文件...将所需的文件添加到资源中,该文件就在那里。我运行 qmake (“构建->运行 qmake”)以使文件可用。第一个问题:我无法从输出终端向文件写入任何内容!但是当我手动写入文件时,每次运行它时输出终端都会显示更改。第二个问题:它仍然显示QIODevice::read: device not open!这是我的代码:

#include <QCoreApplication>
#include <QDebug>
#include <QFile>
#include <QString>
#include <QTextStream>
#include <iostream>

void wFile(QString Filename)
{ 
  QFile  nFile(Filename);
  QTextStream str(&nFile);
  qDebug() << "what do you want to write in the desired file: ";
  str.readLine();
  if (!nFile.open(QFile::WriteOnly  | QFile::Text))
  {
    qDebug() << "could not open the file";
    return;
  }
  nFile.flush(); 
  nFile.close();
 }

void read (QString Filename){
  QFile nFile(Filename);

  if(!nFile.open(QFile::ReadOnly | QFile::Text))
  {
    qDebug() << "could not open file for …
Run Code Online (Sandbox Code Playgroud)

c++ qt qfile qt5 qresource

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

来自 base64 的 PyQt4 setWindowIcon

由于我在使用 pyinstaller 冻结时在 PyQt4 脚本中包含图像时遇到了大麻烦,因此我认为 base64 会是一个更好的主意。如何将它用于 PyQt4 中的 setWindowIcon() 函数。

python pyqt pyqt4 python-2.7

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

如何在 QML 中显示 QSqlQueryModel?

我想在 qml TableView 中显示 QSqlQueryModel 但我不想为每个新查询创建单独的 QML 文件,因为我无法创建无限的 qml 文件,如这里给出的。另外,问题对我的动态列数不起作用(可能是版本差异,因为我使用的是 5.11)。我只想要这样的东西:-

QTableView *view = new QTableView;
view->setModel(model);
view->show();
Run Code Online (Sandbox Code Playgroud)

在 QML 中。

我是 qml 的新手。到目前为止,我可以按照第一个链接中的指导显示 QSqlQueryModel,但我的用户可以输入任何 SQL 查询。

c++ qt qml qt5 qsqlquerymodel

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

滑动 QStackedWidget 页面

如何QtWidgets.QStackedWidget在 QPushButton.clicked 上滑动页面,如下图(右)所示?动作:在左键按下 QStackedWidget 页面索引将设置为 0 & 在右键按下 QStackedWidget 页面索引将设置为 1

python qstackedwidget pyside2

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

在 PyQt 中使用 paho-mqtt

如何使用 QThread 的回调函数?

回调函数 on_message 不打印任何数据。在 run() 中,我连接到 mqtt-broker 并订阅主题。当我收到新消息时,on_message 必须工作。

示例简单的 QT 应用程序。改变值事件与简单的 QLCD 相连。订阅主题取自仪表板

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtCore import Qt, QThread, pyqtSignal
from PyQt5.QtWidgets import (QWidget, QLCDNumber, QSlider,
                             QVBoxLayout, QApplication)
from random import uniform, normalvariate, randint
import time
import paho.mqtt.client as mqtt
import paho.mqtt.subscribe as subscribe

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        lcd = QLCDNumber(self)
        self.data=DataThread()
        vbox = QVBoxLayout()
        vbox.addWidget(lcd)

        self.setLayout(vbox)
        self.data.valueChanged.connect(lcd.display)
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Callback')
        self.data.start()
        self.show() …
Run Code Online (Sandbox Code Playgroud)

python pyqt mqtt pyqt5

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

将列表拆分为较小的列表,其中每个较小的列表随后通过使用列表推导而变小

我有一个列表,我想分成一个列表列表,这样新列表中的每个列表都是一个较小的元素.

例如:

exampleList = [1,2,3,4,5,6,7,8,9,10]

newList = [[1,2,3,4,5,6,7,8,9,10],
       [2,3,4,5,6,7,8,9,10],
       [3,4,5,6,7,8,9,10],
       [4,5,6,7,8,9,10],
       [5,6,7,8,9,10],
       [6,7,8,9,10],
       [7,8,9,10],
       [8,9,10],
       [9,10]]
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法通过列表理解来做到这一点?

python split list-comprehension python-2.7

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

如何为 QTreeView 中的特定行创建自定义 QItemDelegate?

QItemDelegate如何进行如附图所示的定制。这是一个QTreeView。我要自定义并添加的最后一个元素QItemDelegate 在此输入图像描述

现在我只有绿separator线,想在QCheckBox分隔符下方添加一条。如何实施这种行为?

void SeparatorItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
{
    if (index.data(Qt::UserRole + 1).toString() == tr("Unsorted"))
    {
        QPen pen(Qt::green, 1, Qt::DashLine, Qt::RoundCap, Qt::RoundJoin);
        painter->setPen(pen);
        painter->drawLine(option.rect.left(), option.rect.center().y(), option.rect.right(), option.rect.center().y());
    }
    else
    {
        QItemDelegate::paint(painter, option, index);
    }
}

QSize SeparatorItemDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const
{
    if (index.data(Qt::UserRole + 1).toString() == tr("Unsorted"))
    {
        return QSize(200, 25);
    }
    return QItemDelegate::sizeHint(option, index);
}

void SeparatorItemDelegate::updateEditorGeometry(QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index) …
Run Code Online (Sandbox Code Playgroud)

c++ qt qitemdelegate qt5

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

Kivy:load_string() 与 kv 文件

为了理解Kivy kv 语言背后的逻辑,我试图通过调用 Builder.load_string() 替换 kv 文件的自动加载来重写一个最小的应用程序。


这是我的起点(来源:示例 1-2, 1-3):两个文件,weather.pyweather.kv

天气.py:

from kivy.app import App
class WeatherApp(App):
    pass
if __name__ == '__main__':
        WeatherApp().run()
Run Code Online (Sandbox Code Playgroud)

天气.kv

Label:
    text: "Hello World"
Run Code Online (Sandbox Code Playgroud)

到了那里,一切都好

结果在这里.

但是如果我尝试手动加载 kv 的东西,我只会得到一个黑屏(并且没有错误消息)。我的代码:

from kivy.app import App
from kivy.lang import Builder

KV = '''
Label
    text: "Hello World"
'''
Builder.load_string(KV)

class WeatherApp(App):
    pass

if __name__ == '__main__':
        WeatherApp().run()
Run Code Online (Sandbox Code Playgroud)

我显然在这里遗漏了一些东西,但是什么?任何帮助,将不胜感激 !

python kivy

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

QTreeWidget 中是否有可使用的默认图标?

我有一个 QTreeWidget,我想添加图标,是否有默认设置可供选择,例如资源管理器中的文件夹和一张空白纸图标?

c++ qt qtreewidget qt5 qicon

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

QPushButton.clicked() 在使用 .ui 表单自动装配时触发两次

考虑这个设置:

主脚本,main.py

import sys
from PyQt5 import uic
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QApplication, QMainWindow

class MainWindow(QMainWindow):

    def __init__(self, parent=None):
        super().__init__(parent)

        self.ui = uic.loadUi("mw.ui", self)

    def on_btnFunc_clicked(self):
        print('naked function call')

    @pyqtSlot()
    def on_btnSlot_clicked(self, bool):
        print('slotted function call')

app = QApplication(sys.argv)
win = MainWindow()
win.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

Qt Designer .ui 表单,mw.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>153</width>
    <height>83</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget"> …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt5

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