如何在python pyqtgraph PlotWidget中设置刻度标签
我试图绘制每天每天几个小时约会的时间序列,每天之间没有空白的时间.如果我使用pg.graphicswindow.如果我使用pg.plotwidget或pg.plotwindow,alt2和alt3它不起作用,而是显示normla 0.1 0.2 ..是.代码运行,timeaxisitem类被调用,但X轴tick标签不会更改.我使用qt.qmainwindow()和qtgui.qgridlayout()有一个较大的程序,该程序不接受pg.graphicswindow().我想念什么?如何在PlotWidget中设置tick标签? # -*- coding: utf-8 -*- ''' Setting x-axis labels for time series ''' import datetime as dt from pyqtgraph.Qt import QtGui, QtCore import numpy as np import pyqtgraph as pg clas
0 2023-12-03
编程技术问答社区
在PyQt4中调整部件的大小
我使用QT设计器创建了一个主窗口,其中包含一个TabWidget.我的问题是,当窗口最大化时,TabWidget仍然是其原始大小 - 因此留下了很多灰色空间. 我想让主窗口始终最大化,那么如何调整TabWidget大小以占据更多空间?我可以在以下代码中添加什么才能实现这一目标? self.tabWidget = QtGui.QTabWidget(self.centralwidget) self.tabWidget.setEnabled(True) self.tabWidget.setGeometry(QtCore.QRect(20, 40, 601, 501)) self.tabWidget.setTabPosition(QtGui.QTabWidget.North) self.tabWidget.setObjectName(_fromUtf8("tabWidget")) 解决方案 您需要使用某种QLayout. 您可以很容易地在设计师中执行此操作.只需右键单击表
0 2023-12-03
编程技术问答社区
PyQt进度条直到100%才更新或出现
编辑: PYQT4 Progress Bar不更新的Progress Bar上有许多类似的帖子.他们都专注于线程问题以及程序实际更新窗口的位置.尽管很有帮助,但我的代码是如此的结构,以至于答复不切实际.此处给出的可接受的答案很简单,对Point&Works. 我在Win 7 x64机器上使用Python 2.7和Pyqt 4. 我试图清除一个小部件的窗口,一个"接受"按钮,查看代码,然后用进度栏替换. 即使我关闭"接受"按钮并在输入处理循环之前添加进度栏.窗口仅在循环完成后才更新,并且进度栏直接跳至100%. 我的代码, from PyQt4 import QtCore, QtGui import sys import time class CentralWidget(QtGui.QWidget): def __init__(self, parent=None): super(CentralWidget, self).__init
0 2023-12-03
编程技术问答社区
从任务栏中隐藏PyQt应用程序
我是PYQT的初学者.我试图创建一个简单的应用程序来尝试工具包的许多功能.我的问题是,如何从任务栏中隐藏应用程序图标? 我不希望用户能够在任务栏中看到图标,并使用此图标将其最小化.我可以使用任何窗口标志来实现此目标吗? 解决方案 改编自此线程: import sys from PyQt4.QtGui import * if __name__ == '__main__': app = QApplication(sys.argv) widget = QWidget() mainWindow = QMainWindow(widget) mainWindow.show() sys.exit(app.exec_()) 其他解决方案 这应该可以解决: myApp.setWindowFlags(QtCore.Qt.Tool) 其他解决方案 这让我疯了几天.完成以下实现的应用程序代码. 钥匙位: 覆盖collec
0 2023-12-03
编程技术问答社区
当使用QWebView时,为什么必须调用QApplication.processEvents()直到QNetworkRequest完成?
通常,当我通过QT 4.8执行网络请求时,我不需要明确运行QApplication.processEvents()(示例). 但是,当我在A QWebView中向JavaScript发出网络请求时,除非我调用该方法在请求完成之前,否则这将行不通,如下所示(在这里语法高光的要点). 澄清: 当我省略processEvents()时,该请求是甚至都没有发送,尽管finished插槽似乎是我所理解的. from PyQt4 import QtCore, QtGui, QtNetwork, QtWebKit class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() QtNetwork.QNetworkProxyFactory.setUseSystemConfiguration(True) se
0 2023-12-03
编程技术问答社区
使用QWebPage刮取多个尿液
我正在使用QT的Qwebpage渲染一个使用JavaScript动态更新其内容的页面 - 因此,只下载页面的静态版本(例如Urllib2)的库不起作用. 我的问题是,当我渲染第二页时,该程序刚刚崩溃的时间约为99%.在其他时候,它会在崩溃之前工作三遍.我也得到了一些segfaults,但这都是非常随机的. 我的猜测是我用来渲染的对象无法正确删除,因此试图重复使用它可能会给我自己带来一些问题.我看了看,似乎没有人真正遇到同样的问题. 这是我正在使用的代码.该程序从Steam的社区市场下载网页,因此我可以创建所有项目的数据库.我需要多次调用getItemsFromPage函数以获取所有项目,因为它们被分解为页面(显示x量中的1-10). import csv import re import sys from string import replace from bs4 import BeautifulSoup from PyQt4.QtGui import * fr
0 2023-12-01
编程技术问答社区
如何更改qtwebkit中的POST数据?
对于更改,qtwebkit中的后变量需要更改或替换createrequest中的传出(...). 如何创建自己的而不是qfile或qbyTearray. Qiodevice对象恰好!创建可写的设备是必需的. 或如何将转换为. QnetWorkCessManager中最常使用的设备: https://qt.gitorious.org/QT/webkit/source/7647FDAF9A4B526581E02FBD0E87C41A96CBFEBBB:SRC/NETWORK/NETWORK/QNETWORK/QNETWORKACCESSMANWORKACCESSMANAGER.CPPPPPP#L941 QNetworkReply
0 2023-12-01
编程技术问答社区
PyQt Webkit和html表单。获取输出和关闭窗口
我正在尝试获取无边界的Python Pyqt WebKit窗口,以显示单个网站html表单.单击"发送"时,应将表单值保存在字典中,并关闭窗口. 到目前为止(借助 so so )我有无边界窗口,可以获取输入.但是,缺少两件事: 按下发送后关闭窗口. 在字典elements中获取输入(请注意,elements的密钥对应于HTML表单名称). (反之,回合会更好,但是1似乎更困难) 到目前为止我的代码是: import sys from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtWebKit import * elements = {"like":"", "text": ""} class MyWebPage(QWebPage): def acceptNavigationRequest(self, frame, req, nav_type): if n
0 2023-12-01
编程技术问答社区
Python Webkit使用虚拟帧缓冲器制作网站屏幕截图
问题是我需要捕获网站屏幕截图而无需运行X服务器. 因此,从理论上讲,可以创建一个虚拟帧缓冲区并使用它来捕获屏幕截图. 是否有类似的解决方案,将不胜感激? 苏丹 解决方案 您可以使用Selenium Webdriver和PyvirtualDisplay(使用XVFB)的组合来在虚拟显示器中运行浏览器并捕获屏幕截图. 所以,您需要的设置是: 硒python绑定 pyvirtualdisplay python软件包(取决于xvfb) 在debian/ubuntu linux系统上,您可以使用以下方式设置所有内容: $ sudo apt-get install python-pip xvfb $ sudo pip install selenium 设置后,以下代码示例应起作用: #!/usr/bin/env python from pyvirtualdisplay import Display from selenium imp
0 2023-12-01
编程技术问答社区
pyQT4网络浏览器Python授予权限(网络摄像头)。
我需要制作一个非常简单的网络浏览器,用Python包裹.我正在使用pyqt4.我可以很容易地创建一个浏览器来加载网页,几乎所有内容都可以正常工作.我遇到的问题是访问网络摄像头行不通.导航到任何试图访问网络摄像头的URL(通过JavaScript getusermedia())无济于事.甚至不会提示用户选择网络摄像头设备. 为什么这是? 如何授予使用简单的Pyqt4 Python程序使用网络摄像头的权限? 这是我到目前为止所拥有的: from PyQt4 import QtCore, QtGui, QtWebKit class myWindow(QtWebKit.QWebView): def __init__(self, parent=None): super(myWindow, self).__init__(parent) #self.page().mainFrame().addToJavaScriptWindowOb
0 2023-11-29
编程技术问答社区
可以在Virtualenv沙箱中添加PyQt4/PySide包吗?
我正在使用 virtualenv 在我的开发环境中获利web.py,和其他面向Web的软件包. 我将使用QT开发一个简单的Python客户端来重复使用Web.py开发的某些API. 这里有人用Virtualenv成功安装了Pyqt4吗? 有可能吗? 我已经下载了所有二进制文件,并且在我的python2.6目录上全球安装了PyQt4 如果我不使用--no-site--packages选项,则Virtualenv正确地包含PyQt4在我的新沙盒中,但是显然,我不需要所有的全局软件包. 是否有一种干净的方法可以使用--no-site--packages选项准备新的沙盒,然后添加PyQt4或PySide使用pip,easy_install或其他一些魔术? 解决方案 应该足以创建一个空的Virtualenv,然后将.../site-packages/PyQt4目录的内容复制到其中. 我建议在全球范围内安装PYQT4,制作目录的副本,卸载它,然后使用此技巧创建V
0 2023-11-19
编程技术问答社区
当一个变量的值被改变时,PyQt事件
我有一个可变的t t = 0 我想在更改t值时开始一个事件. 如何 ?没有估值. 解决方案 对于全局变量,仅使用分配是不可能的.但是对于属性来说,这很简单:只需使用 property (或也许 __getattr__/__setattr__ ).这有效地将分配变成了函数调用,使您可以添加自己喜欢的其他行为: class Foo(QWidget): valueChanged = pyqtSignal(object) def __init__(self, parent=None): super(Foo, self).__init__(parent) self._t = 0 @property def t(self): return self._t @t.setter def t(self, value): self._t = value
2 2023-11-13
编程技术问答社区
获取Qt Widget的变量名(用于样式表)?
在我的应用程序中,用户单击我程序的任何小部件(当时是;休眠)并为其选择颜色. 然后,该颜色将被添加到该特定小部件的样式表中. 但是,当程序结束并再次启动时,我希望该特定的小部件保留其样式表. 我不必为每个小部件中的样式表中的硬代码.实际上,我什至不知道哪个特定的小部件具有样式表. 我真正想做的是为应用程序有一个样式表,然后将新颜色编码为特定的小部件. (即:如果用户单击qpushbutton并选择了{颜色:red}的样式表, 我只想要那个qpushbutton红色和其他任何人. 因此,如果那个qpushbutton具有" clicky"的可变名称, 我要添加到Qapplications样式表: 'qpushbutton#clicky {颜色:red}') 要执行此操作,而不必为每个小部件对其进行硬编码, 我必须以某种方式将PYQT4小部件的可变名称转换为字符串. 我该怎么做? 谢谢! (我读过,从其值中获取python变量名称可能非常困
0 2023-11-13
编程技术问答社区
PyQt4用户输入验证-QlineEdit
我使用PYQT4了解输入验证时遇到了一些麻烦.这是我的第一个GUI应用程序,也是第一次使用PYQT4框架.我一直在阅读类参考,看来进行文本验证的首选方法是通过qregularexpression类,但对于某些简单的输入验证似乎过多. 我在注册用户类中有一种方法,将用户添加到SQLITE数据库中.我还为Qlineedits创建了一个信号,该信号连接到验证文本的方法. SQL输入工作正常,但由于某种原因,输入验证效果不佳.这不会引起错误.消息框只是不弹出.我知道我只创建了一个信号,但这只是用于测试. def newUser(self): #This method adds a new user into the login database and displays a pop up window confirming the entry c.execute("INSERT INTO logins(usernames, passwords)
0 2023-11-12
编程技术问答社区
如何使用PyQt创建可变列网格
我正在尝试使用Python和QT4显示一系列图像缩略图.我的问题是我不想计算网格的列数量,因此当调整应用程序或缩略图更大时,列的数量会自动更改. 实际上,我想使用Qlabel,因为图像将具有文件名和可能的按钮.有一种简单的方法吗? 类似的东西: 解决方案 Brendan Abel 的答案是使用QT力量的正确和优雅的方式.但是,如果您发现模型视图架构太重了,我建议您使用FlowLayout在在这里 它相当容易实施,可能适合您的需求. 其他解决方案 您应该考虑使用QGraphicsView.对于真正的自定义小部件来说,这是一个不错的构建块,这些小部件实际上并不类似于任何内置的小部件.它使用模型/视图体系结构,并允许您几乎无限的灵活性如何绘制每个项目的绘制方式,而不是依靠更有限的QLayout放置系统.
0 2023-11-11
编程技术问答社区
PyQt4-检测全局鼠标点击
我正在进行的小型项目的一部分涉及"校准"屏幕的坐标,以进行屏幕截图. 通过"屏幕",我指的是整个桌面,而不是我的GUI窗口. 出现QDialog窗口时(我是分类)时,对坐标进行了校准. 提示用户单击屏幕上的几个位置. 我需要该程序来记录屏幕上任何地方发生的所有鼠标点击的位置 - 因为它们不在此窗口外. 显然,覆盖Mouseevent方法不起作用,因为QDialog没有接收点击. 如何捕获全局鼠标点击,以便在单击屏幕的任何部分时触发事件并发送到QDialog? (我更喜欢基于QT的解决方案,但是如果需要的话,请向其他库开放). 谢谢! 解决方案 我以为这是不可能的,而是使用pyhook, 让QT泵送消息. 其他解决方案 有一些跨平台的示例,有关如何使用
2 2023-11-11
编程技术问答社区
带有倒计时器的PyQt4 QMessageBox
我在实验室中编写了用于测量的Python应用程序,该应用程序通过不稳定的网络连接将数据保存到远程数据库中.断开连接时,一个问题会弹出(我使用QMessageBox.question),要求用户重复上次交易还是取消该问题. 最近对应用进行了修改以在夜间自动进行自动测量.没有运算符可以单击默认选项"重试"!一段时间后应自动选择它,但仍会给用户做出其他选择的机会. 这意味着,我需要Qmessagebox的版本,该版本通过超时后单击默认按钮,如果用户没有做出其他选择. 有类似的问题,但它是C++ - 特定的. 解决方案 这个答案是Python C++代码的改编,由 Jeremy Friesner在类似的问题: from PyQt4.QtGui import QMessageBox as MBox, QApplication from PyQt4.QtCore import QTimer class TimedMBox(MBox): """ Va
2 2023-11-11
编程技术问答社区
如何在QTableWidget中打印数据库中的数据?
如何将数据库(SQLITE)从GUI中的表(使用相同格式)中的表格中打印到记事本/Word文档中.这是我的GUI中表示的表格的代码. class Table(QtGui.QDialog): def __init__(self): super(Table, self).__init__() with sqlite3.connect('database.db') as db: cursor=db.cursor() cursor.execute('select* from Receipt Order BY ReceiptID ASC') title = [cn[0] for cn in cursor.description] rows = [cn[0] for cn in cursor.description] cur=curso
4 2023-11-11
编程技术问答社区
在检索窗口大小和部件大小时遇到困难
这是相机监视系统的代码.在configuration_page.py文件中,尽管使用了self.showMaximized()和resizeEvent(),但我还是得到窗口的大小为 100x30 .其中存在的小部件也显示为 640x480 .我特别有兴趣检索self.mid_frame的小部件的大小. 早些时候,我在dashboard.py文件中遇到了相同的问题,但是在这种情况下,我明确地通过宽度和高度找到了解决方法.但是这次我之所以陷入困境,是因为我需要获取名为self.mid_frame的小部件的大小.我不明白为什么 resizeevent 显示出错误的尺寸. main.py from PyQt4 import QtGui, QtCore from PyQt4.QtCore import Qt, QRect from threading import Thread, RLock, Lock from collections import deque from datet
2 2023-11-11
编程技术问答社区