Python QtGui日历小工具调用按钮
我正在为Python使用一个日历小部件.单击按钮时,我需要致电小部件. 情况是,我找不到日历类中显示小部件本身的方法. 日历课是从这里取的: %20picker.html 这是我的进口: from tkinter import * from tkinter import ttk import tkinter.messagebox import time import requests #needs to be installed import pymysql #needs to be installed import csv import win32com.client #needs to be installed from calendar import Calendar import datetime 这是按钮创建: # Calendar Buttons calBut=ttk.Button(f2, width=4, text="Cal", comm
26 2023-12-03
编程技术问答社区
Qt小工具暂时全屏
考虑一个Qwidget,通常是某种布局的孩子. 假设我想整个屏幕一会儿,然后将其返回旧点. QWidget::setFullScreen()要求小部件需要一个独立的窗口 - 任何想法如何解决? 解决方案 我看到的最简单的方法是修复到0.这样的东西: #include #include class MyButton : public QPushButton { public: MyButton(QWidget* parent) : QPushButton(parent) {} void mousePressEvent(QMouseEvent*) { this->setParent(0); this->showMaximized(); this->show(); } }; int main(int argc, char *argv[]) { Q
20 2023-12-03
编程技术问答社区
如何访问图形用户界面的输出?
我正在开发一个测试台,该测试台通过Python GUI运行多个测试,并打印出下面的输出. A Passed B Passed C Passed D Passed E Passed GUI的按钮应仅在通过A,B,C,D,E都通过时将其更改为"通过".如果这些测试中的任何一个都失败了,则应说失败了.从屏幕上打印的GUI访问此输出的方法是什么? 我的测试代码是: from PyQt4.QtCore import * from PyQt4.QtGui import * import sys, os, time from PyQt4 import QtGui, QtCore from progress.bar import Bar import datetime import thread class MyTestBench(QDialog, QtGui.QWidget): def __init__(self): super(QDialog, se
14 2023-11-11
编程技术问答社区
QT悬停在按钮上并触发功能?
,如果鼠标光标徘徊在qbutton上,触发功能的正确方法是什么? 更准确地说,我有一个名为statuslabel的标签,每当我将鼠标光标悬停在按钮上时,应该显示消息,并且每当鼠标不及格时都应该恢复为空字符串. 解决方案 您必须创建自己的类,该类别是qpushbutton的(或要捕获悬停事件的哪个类). 在此类课程中,您可以覆盖 qwidget "> a>检测鼠标何时悬停您的小部件并调用您的功能.例如,您可以做的是发出一个自定义信号,该信号会触发标签的删除.
16 2023-11-11
编程技术问答社区
如何使用Qt设计器允许用户调整窗口内元素的大小?
我想允许使用我的应用程序的用户能够在窗口中的两个小部件之间拖动边界,这将调整两者的大小(即,在底部变小时会变小,并且顶部将变大,并且反之亦然). QT设计器中是否有任何东西可以允许用户在某些约束中调整窗口中的元素? 谢谢 解决方案 您所描述的称为小部件.在QT Designer中,您可以通过选择2个或更多个小部件来创建一个,然后单击顶部工具栏上的分离器按钮.它与布局按钮位于同一位置.它将将这些小部件放置在QSplitter内.您仍然需要将分离器小部件放置在另一个布局中.它将在它们之间创建一个句柄,让您调整每个小部件所获得的部分. 其他解决方案 您正在寻找 qdockwidget .它可以完成您上面描述的所有内容,以及更多.用户可以将小部件停靠到窗口的不同侧面,更改小部件在顶部或底部.您可以自定义最小和最大尺寸以及默认尺寸.
12 2023-11-11
编程技术问答社区
当设置 ItemIsMovable 标志时,QGraphicsView 中的子项目不可移动
要在 qgraphicsview ,i',i',i',i',i',i',i',i',i' m将代表顶点的子项目放在要移动的项目上(使用构造函数中建立的亲子关系).这些是下图中的四个蓝色圆圈: ,但是子顶点没有接收鼠标事件.只有父项目(红色正方形)才能获取鼠标事件. 这是Item的定义: Item::Item(QGraphicsItem * parent) : QGraphicsItem(parent) { setFlag(ItemIsMovable); setFlag(ItemIsSelectable); setFlag(ItemSendsGeometryChanges); setCacheMode(DeviceCoordinateCache); } void Item::paint( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidge
38 2023-07-25
编程技术问答社区
如何在 Qt 中显示其他应用程序的输出视频?
我正在QT中创建GUI应用程序.该应用程序是显示应用程序 x 的输出,该输出与QT无关,因此我无法集成. X 将输出视频.该视频没有路径,因为它是X输出的实时显示. 我想在QT中显示此输出(以及一些背景GUI支持). 因此,就我的知识而言,这样做的一种方法是获取视频的窗口ID并在Qwidget中显示相同的窗口.如何做? 编辑: 我正在使用ubuntu. 我能够通过以下命令获得窗口ID. xwininfo -name"窗口名称" 解决方案 您可以尝试嵌入的小部件: http://harmattan-dev.nokia.com/docs/library/html/qt4/qx11embedwidget.html 带有有效的窗口
12 2023-07-25
编程技术问答社区
QTableView 并双击一个单元格
我正在研究测试案例编辑器.该编辑器包含USART发送和接收数据包格式.编辑器是表观. Transmit和接收数据包长八个字节,例如: 0x01 0x02 0x03 ... 0x08 它在我的第五和第六列中.现在,我希望仅读取此列中的单元格,但是当我在这些列中的任何单元格上双击时,都会显示弹出窗口小部件.该小部件将在文本编辑中包含八个框,用户可以在其中输入数据包格式(即八个字节长)数据.我可以轻松地将这些数据从弹出窗口复制到后端中仅读取单元格. . 这将从用户那里夺走所有策略,例如每个字节之间是否应该有一个空间.因此,这将消除潜在的人类错误. 1:是否有一个事件处理程序可以双击表视图的单元格? 2:我可以为同一列的每个单元格有一个通用的双击处理程序吗? 3:如何使特定列的单元格仅在表观视图中读取,同时保留了我可以在末端更改其值的事实(即后背)? ? 解决方案 1:是否有一个事件处理程序可以双击表 查看. 注意,您应该使用信号而不是事
20 2023-07-25
编程技术问答社区
QComboBox 下拉项目边距
我想在下拉物品的边距上为我的QComboBox造型.这就是现在的样子: 我想要这样的东西: 我尝试了 QComboBox QAbstractItemView::item { margin: 3px; } 但是它不起作用. 你能帮我吗? 解决方案 您想在项目之间设置一些空间.我尝试不同的样式表,但我无法获得结果.但是我找到了这个解决方案.也许有帮助. ui->comboBox->setView(new QListView()); ui->comboBox->setStyleSheet("QComboBox QAbstractItemView::item { min-height: 35px; min-width: 50px; }QListView::item:selected { color: black; background-color: lightgray}"); 结果非常相似 其他解决方案 ui->comboBo
24 2023-07-25
编程技术问答社区
如何控制 QDialog 的位置?
是否有任何简单的方法可以在应用程序打开时以相同位置打开QT对话框? 即. by 简单的方法我的意思是不要手动写入文件中的窗口位置,然后读取:) 解决方案 您可以使用 qsettings 类来实现这一目标.这是一个抽象类,允许您的应用程序存储其设置以在下一次启动时检索它们. 保存设置: QSettings settings("ValueName", "Value"); 阅读设置: QString v = settings.value("ValueName"); 其他解决方案 与Qwidget :: RestoreGeometry()和Qwidget :: SaveGeometry(). 一起使用QSETTINGS. 其他解决方案 最好保存对话框 - > pos(),dialog-> size(),dialog-> iSmaximized(),原因对话 - > savegeemetry()不会最大化窗口.
48 2023-07-25
编程技术问答社区
如何在 Qt 中获取鼠标在屏幕上的位置?
我想在屏幕上获取鼠标坐标. 我该如何在QT中执行此操作? 在Windows上,使用C#I正在做出类似于答案中建议的事情在此问题上. 解决方案 作为文档状态: - QCursor::pos() 返回主要屏幕的光标(热点)位置 全局屏幕坐标. 如果您有多个屏幕,则可以使用: - QPoint QCursor::pos(const QScreen * screen) 请注意,QScreen适用于QT 5 其他解决方案 尝试以下方法: QCursor::pos() 应该完美工作
42 2023-07-25
编程技术问答社区
用 qt 实现图形用户界面 Shell
我想使用A QTextEdit在QT中实现一个简单的图形外壳.我想获取用户命令并打印结果QTextEdit. 下面的代码返回QTextEdit的全部内容: text_editor.toPlainText().toAscii(); ,但我不知道如何区分用户输入的内容和以前打印的内容.正确的方法是什么? 解决方案 使用qtextedit进行输出.它支持多条线,您可以使用HTML控制颜色.然后将单行QlineIt用于输入命令.将qlineedit放在qtextedit下方,在那里您有一个简单命令接口的GUI!当您输入QlineEdit命令时,也将其打印到qtextedit,也许使用与命令结果不同的颜色. 这比尝试使用一个小部件进行所有操作要容易得多. 其他解决方案 重新进化键按事件处理程序进行正常工作,还可以保存用户键入数据.按下Enter后,执行单独保存的文本然后清除.
32 2023-07-25
编程技术问答社区
如何在 QT(QGraphicsView)中打开 svg 文件
如何打开诸如png文件之类的SVG文件. 例如,它适用于PNG文件: scene=new QGraphicsScene(QRect(10, 10, 680, 520)); view=new QGraphicsView(this); image=new QGraphicsPixmapItem(QPixmap("example.png")); scene ->addItem(image); view ->setScene(scene); view ->setGeometry(QRect(270, 35, 700, 540)); 有什么想法? 解决方案 根据我的评论,您可以按照文档: 在* parent = 0) 用给定父母构造一个新项目,并使用指定的文件名加载SVG文件的内容. 因此,您基本上将写出以下内容: QGraphicsSvgItem *item = new QGraphicsSvgItem("example.svg");
22 2023-07-25
编程技术问答社区
QT 信号/插槽
我有一个有关信号和插槽的问题.在我的应用程序中,我想在对话框窗口中将信号从一个对象连接到textEdit.我的信号散发出A QString;如果我违反了封装(通过将UI公开而不是私有用户)并将信号直接连接到textEdit>.但是我觉得这不是正确的方法.如果我做以下内容: connect(m_osgWidget->picker.get(), SIGNAL(setX(QString)), m_addAgentDlg, SLOT(getX(QString))); 其中: void getX(QString) { this->ui.textEdit(QString); } 它给了我一个错误,即在此this->ui.textEdit(QString);中我无法使用QString我需要粘贴到m_addAgentDlg的setX()的信号中QString.如何完成?我在哪里犯了一个错误? 解决方案 我很遗憾地这样说,但是您需要学习基本的C ++.适当的语法是对于q
132 2023-07-25
编程技术问答社区
如何检查 .pro 文件中选定的 Qt 版本?
我已安装了多个版本的QT,我需要与所有项目一起编译我的项目. 使用Pro文件,我在文档中找不到如何进行条件编译. 理想情况下,这是我想做的: QT_VERSION = 5 # this can be 4, set manually if(QT_VERSION == 5) { QT += widgets } if(QT_VERSION == 4) { QT += gui } 自然,if()命令在pro文件中不存在. 有更好的方法可以做同样的事情吗? 解决方案 您可以在这里使用条件功能和范围: QT_VERSION = 5 # this can be 4, set manually equals(QT_VERSION, 5){ QT += widgets } equals(QT_VERSION, 4) { QT += gui } 但是,您需要在原始代码中注意一些事情: 明确定义QT版本是不需要的,如果您忘了在.p
34 2023-07-25
编程技术问答社区
PySide.QtGui RuntimeError: 对象基类的'__init__'方法未被调用......但它被调用了。
一些环境基础知识 Python版本:3.4.2 OS:Windows 8.1 到目前为止搜索,我怀疑 与我手头的问题有关,但我不确定我如何在相同的情况下复制足够多 - 可能是我缺乏深入的python知识. 简化的代码复制问题: 基类 from PySide.QtGui import * class Interface(QWidget): ''' Wrapper base class for GUI input QWidgets: - buttons - text fields - checkboxes - line edit - dropdown menu (combo box) ''' def __init__(self, parent, name, title_txt=None, qt_obj=None, update_log_method=None):
20 2023-07-21
编程技术问答社区
实施用于实时数据图表的 pyqtgraph
我正在尝试使用Pyqtgraph的仪器收集数据,以获取实时数据. 数据收集由主过程处理,然后将其传递到绘制它的子过程的连接上.我只是想传递新数据并在传递新数据时进行更新. 我试图通过将读取的连接读取在QT计时器更新循环中来实现,但是随后我很难在连续的更新周期之间传递图形数据(我想附加到).我从下面的代码中省略了,但基本上我想加入许多连续的conndata,我认为使用全局会起作用,但是由于某种原因,我无法在这里实施. 编辑1:与pyqtgraph示例相比的问题似乎是将数据传递到QTimer的更新过程中,我得到了: 名称:全局名称'curvedata'未定义 我试图这样做的原因,而不是使用pyqtgraph的多处理模块,是因为我不想每次将整个数据集传递到整个数据集(我认为这是必要的).谢谢! 编辑2:是否有Pyqtgraph.multiprocess的文档? (这是提供的原始代码) import multiprocessing import n
26 2023-07-20
编程技术问答社区
qt | 在父窗口/小工具类中初始化子小工具的目的是什么?
在QT中的VideoWidget和安全套接字客户端示例中,在此处呈现的代码会使父母小部件中的子小部件Intarise,例如: SslClient::SslClient(QWidget *parent) : QWidget(parent), socket(0), padLock(0), executingDialog(false) 和 VideoPlayer::VideoPlayer(QWidget *parent) : QWidget(parent) , mediaPlayer(0, QMediaPlayer::VideoSurface) , playButton(0) , positionSlider(0) , errorLabel(0) 但是,在代码下方,我看到以下内容: playButton = new QPushButton; 或在安全插座客户端的情况下,以下内容: padLock = new QToolButton; 为什么在构造函数中对
18 2023-07-18
编程技术问答社区
在Qt 5.1中使用共享QGLWidgets的线程OpenGL问题
我使用两个qglwidgets.一种用于加载纹理,一种用于渲染,但它不起作用. 我使用了以下解释 http://blog.qt.digia.com/blog/2011/06/03/threaded-opengl-in-4-8/ 纹理上传线程 上传许多(或大)纹理通常是一个昂贵的操作,因为将数据推向GPU.同样,这是可以不必要地阻止主线程的操作之一.在4.8中,您可以通过创建一对共享QGLWIDGETS来解决此问题.其中一个小部件是在单独的线程中最新的,但在屏幕上永远不会可见.主线程告知上传线程哪些映像要上传,上传线程只需在这些图像上调用bindtexture(),然后在每个图像完成后通知主线程,以便将其绘制到屏幕上. . 使用MINGW QT 4.8,它可以正常工作,但是现在我将QT 5.1与MSVC一起使用.当我想在线程电流中制作小部件时,我会遇到错误: 不能在其他线程中使Qopenglcontext电流 我理解错误,但是我该如何解决.当我不设置小部件电
36 2023-07-17
编程技术问答社区
Qt: 如何从主窗口移除默认的主工具栏?
我是QT的新手,我无法弄清楚为什么主窗口中有一个可拖动的对象.它以外观形式从屏幕的顶部开始. 然后我可以拖动它,然后缩小到一个正方形中. 解决方案 您需要从qtdesigner中删除主工具栏,如下所示或手动从代码中看到: 然后,您需要重新运行qmake才能进行更改,以生效,因为需要从更新的mainwindow.ui描述文件中重新生成ui_mainwindow.h标头文件.
126 2023-07-17
编程技术问答社区