小编eyl*_*esc的帖子

如何在Qt中将一个小部件放在另一个小部件上

我在Qt有一个窗口,我正在画一幅画.现在我想把进度条放在它上面.我怎样才能做到这一点?..

我要遵循的步骤

  1. 创建一个窗口

  2. 在窗口的油漆事件中画画

  3. 然后创建QGridLayout布局,添加窗口

  4. 显示在它上面.

假设我想在图片窗口的一部分上添加进度条.我怎样才能做到这一点

我不认为它可以在窗口绘制事件中实现.

请帮助我

谢谢

qt symbian qt4 grid-layout progress-bar

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

QtWebkit:如何检查HTTP状态代码?

我正在编写一个缩略图生成器,如QtWebkit文档中的示例所示.我想避免错误页面的截图,如404 not found503 Internal server error.

但是,即使页面发出HTTP错误,也始终发出QWebPage :: loadFinished()信号ok = true.QtWebkit中有没有办法检查响应的HTTP状态代码?

qt http-status-codes qtwebkit

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

如何在QWebview中显示本地HTML?

我怀疑这是如此基本,没有人费心去记录它.

我想从我的程序中编写一个HTML文件,然后将该文件加载到QWebview对象中.

当我打开QtCreator时,我可以导航到右侧URL块中的文件,它显示在QtCreator中.当我编译并运行程序时,窗口是白色和空白的.

我也不希望目录硬编码,我希望它使用当前目录.

所以我想有两个问题:

  1. 我怎么写??? 在下面获取名为"reportView"的QWebview对象来显示我的本地文件?

ui->reportView->load(QUrl("???"));
Run Code Online (Sandbox Code Playgroud)
  1. 为什么QWebview对象保持空白?我怀疑连接到Google文档时出现问题,因为我收到此错误:

QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_CTX_new
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function ERR_get_error
Run Code Online (Sandbox Code Playgroud)

谢谢.

qt qwebview

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

如何从GUI停止QThread

这是我之前发布的前一个问题的后续问题.问题是当使用NOT子类化Qthread的推荐方法时,如何从GUI停止(终止|退出)QThread,而是使用QObject然后将其移动到QThread.下面是一个工作实例.我可以启动GUI和Qthread,我可以让后者更新GUI.但是,我无法阻止它.我为qthread(quit(),exit(),甚至terminate())尝试了几种方法无济于事.非常感谢.

这是完整的代码:

import time, sys
from PyQt4.QtCore  import *
from PyQt4.QtGui import * 

class SimulRunner(QObject):
    'Object managing the simulation'

    stepIncreased = pyqtSignal(int, name = 'stepIncreased')
    def __init__(self):
        super(SimulRunner, self).__init__()
        self._step = 0
        self._isRunning = True
        self._maxSteps = 20

    def longRunning(self):
        while self._step  < self._maxSteps  and self._isRunning == True:
            self._step += 1
            self.stepIncreased.emit(self._step)
            time.sleep(0.1)

    def stop(self):
        self._isRunning = False

class SimulationUi(QDialog):
    'PyQt interface'

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

        self.goButton = QPushButton('Go')
        self.stopButton = QPushButton('Stop')
        self.currentStep = QSpinBox()

        self.layout = QHBoxLayout()
        self.layout.addWidget(self.goButton)
        self.layout.addWidget(self.stopButton) …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt4 qthread

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

如何在QML上重用代码

我有这条QML代码:

   Column {
       spacing: units.gu(2)
       anchors {
           fill: parent
           centerIn: parent
       }
       Row {
           spacing: units.gu(4)
           ...
       }
       Row {
           spacing: units.gu(4)
           ...
       }
       Row {
           spacing: units.gu(4)
           ...
       }
       Row {
           spacing: units.gu(4)
           ...
       }
    }
Run Code Online (Sandbox Code Playgroud)

关于QML编程的最佳实践,如何重用代码以避免常见元素的重复属性?例如,在上面的示例中,避免行"spacing:units.gu(4)".

qt qml

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

如何在QML中声明列表属性

如何在QML中声明list属性(Qt.labs.settings在我的情况下使用):

Settings {
    property list recentFiles: []
}
Run Code Online (Sandbox Code Playgroud)

不行.我尝试过许多其他选项:list<string>,string[],等无似乎工作.

qt qml qt5 qtquick2

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

PyQt:单击按钮后更改GUI布局

好吧,我从Tkinter跳到PyQt,因为PyQt更先进,更好用.但!我在这里遇到了一些麻烦.

我按下主屏幕上的一个按钮后,我正在尝试更改GUI布局.我按下主GUI页面的第一个按钮,然后我希望它转到我将创建的另一个GUI页面.我一直坐在这里几个小时试图找到一些方法来做到这一点 - 没有YouTube上的视频,我没有找到任何帮助的堆栈溢出页面.所以我了解到有一个Qt Designer程序.我不喜欢这样的节目,所以请在回答时尽量避免使用它.

PS:我不想使用多个.py文件,但如果没有其他方法,我想我将不得不这样做.

到目前为止,这是我的代码:

class Window(QtGui.QMainWindow):

    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(50, 50, 400, 450)
        self.setFixedSize(400,450)
        self.setWindowTitle(" Tool")
        self.setWindowIcon(QtGui.QIcon('PhotoIcon.png'))
        self.home()

    def home(self):
        ToolsBTN = QtGui.QPushButton('text', self)
        ToolsBTN.clicked.connect(ToolTab)
        ToolsBTN.move(50, 350)
        CPSBTN = QtGui.QPushButton('text', self)
        CPSBTN.clicked.connect(QtCore.QCoreApplication.instance().quit)
        CPSBTN.move(150, 350)
        CreatorBTN = QtGui.QPushButton('Creator', self)
        CreatorBTN.clicked.connect(QtCore.QCoreApplication.instance().quit)
        CreatorBTN.move(250, 350)
        self.show()

class ToolTab(QtGui.QMainWindow):

    def __init__2(self):
        super(ToolTab, self).__init__2()
        self.setGeometry(50, 50, 400, 450)
        self.setFixedSize(400,450)
        self.setWindowTitle(" Tool")
        self.setWindowIcon(QtGui.QIcon('PhotoIcon.png'))
        self.Toolsgui()

    def Toolsgui(self):
        CPSBTN = QtGui.QPushButton('123', self)
        CPSBTN.clicked.connect(QtCore.QCoreApplication.instance().quit)
        CPSBTN.move(150, 300)
        self.show()

def Run():
    app = QtGui.QApplication(sys.argv)
    GUI = Window()
    GUITOOL …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt4 qmainwindow

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

如何使用GoogleTest框架打印QString?

我将GoogleTest(GTest)框架与Qt5应用程序结合使用.

每当使用QString参数进行测试失败时,框架会尝试打印所有涉及的值.但是,它无法自动处理外来类型(在这种情况下为Qt5的QString).

QString test = "Test";
ASSERT_EQ(test, "Value");
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何让GoogleTest自动打印QStrings(=无需每次手动转换它们)?

qstring qt pretty-print googletest qt5

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

如何通过字典进行测试

我在编写测试(针对Python)方面还很陌生,所以我现在有一个问题:如何将字典传递给测试函数?目前我执行以下操作:

import os
import sys
import shutil
from app.views import file_io
import pytest
from tempfile import mkdtemp
import codecs

@pytest.fixture()
def tempdir():
    tempdir = mkdtemp()
    yield tempdir
    shutil.rmtree(tempdir)

articles = [
        ["", "README.md", "# Hallo Welt", "<h1>Hallo Welt</h1>\n"],
        ["test", "article.md", "# Hallo Welt", "<h1>Hallo Welt</h1>\n"]
]


@pytest.mark.parametrize("dir, file, content_plain, content_md", articles)
def test_readRaw(tempdir, dir, file, content_plain, content_md):
    dest_path=os.path.join(tempdir, dir)
    os.makedirs(dest_path, exist_ok=True)

    with codecs.open(os.path.join(dest_path, file), 'w', 'utf-8') as fh:
        fh.write(content_plain)

    assert file_io.readRaw(os.path.join(dest_path, file)) == content_plain
Run Code Online (Sandbox Code Playgroud)

我的想法/希望是我可以修改代码,这样我就可以做类似的事情:

articles = [
               { "dir": …
Run Code Online (Sandbox Code Playgroud)

python pytest python-3.x

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

行:1:Qt Quick 仿真层崩溃

我创建了一个空的 QT 快速应用程序。我的编译器是 MinGW 64。我的项目有 main.qml 文件:

import QtQuick 2.14
import QtQuick.Window 2.14

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
} 
Run Code Online (Sandbox Code Playgroud)

但是当我想在设计器中看到它的 UI 时,它给了我一个错误: Line: 1: Qt Quick emulation layer crashed。

我将用户回退 QML 仿真层更改为“C:\Qt\Qt5.14.0\Tools\QtCreator\bin”,但它不起作用。

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

qt qt-creator qml

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