jjzjj

重复使用Qwidget Pyqt5

我有一个带有QTDesigner的预定义小部件,我想在几个选项卡中使用它。如果我通过添加小部件添加了几次新选项卡,则只能完成一次。例如:foriinrange(3):self.tab_widget_name.addTab(self.widget_name,str(i))看答案例如提到的@user3419537,您必须为每个选项卡创建新的小部件,不足以更改标签的标签。self.tabs=QTabWidget(self)self.tab1=QWidget()self.tab2=QWidget()self.tab3=QWidget()self.tabs.addTab(self.tab1,"1")se

c++ - 如何使用 QPainter 绘画?

我最近开始学习Qt。我不太清楚如何使用QPainter类进行绘画。假设我只想在窗口中放置几个​​点:classPointDrawer:publicQWidget{Q_OBJECTprivate:QPainterp;public:PointDrawer(QWidget*obj=0):QWidget(obj),p(this){}virtualvoidpaintEvent(QPaintEvent*){p.setPen(QPen(Qt::black,3));intn=8;while(...){qrealfAngle=2*3.14*i/n;qrealx=50+cos(fAngle)*40;qre

c++ - 我怎么知道鼠标是否在小部件上?

我是Qt(PyQt-PySide)的新手。我正在尝试构建一个自定义小部件,它是一个菜单。然而,我走上了一条艰难的道路,我似乎无法解决自己的问题。我已阅读文档,但我认为没有鼠标状态我可以验证以确定鼠标光标是否位于给定的小部件上。我在QWidget的mouseReleaseEvent上调用函数。例如:defmouseReleaseEvent(self,e):触发此事件时,我必须知道鼠标实际上是在小部件上方还是在小部件之外(触发此事件的小部件)。ifmouseCursorOverSelf==True:#dosomething..我怎样才能做到这一点?我需要做什么?非常感谢!

c++ - 具有完全透明背景的qt小部件

我需要创建一个qt小部件,它将作为其他一些小部件的父级,并对它们进行排序。现在,问题是如何让它的背景完全透明?我想这样做:structImp{Imp(QWidget*parent):thisWidget(newQWidget(parent)){thisWidget->setAttribute(Qt::WA_TranslucentBackground,true);}QWidget*thisWidget;};您认为我是否需要设置该属性,或者没有它是否可以正常工作? 最佳答案 默认情况下,在Qt4中,QWidget不会为其自己的背景绘制任

c++ - QIODevice::read:设备未打开

我试图从文件中读取并放入文本编辑中,但它一直说QIODevice::read:devicenotopen。.txt文件与我的.qrc和.cpp文件位于同一位置。我正在按照网上的分步指南进行操作。据我了解,他们在从Q4到Q5时改变了一些东西。有没有人对我如何解决这个问题有任何提示。谢谢//Myfindstuff.h#ifndefFINDSTUFF_H#defineFINDSTUFF_H#includenamespaceUi{classFindStuff;}classFindStuff:publicQWidget{Q_OBJECTpublic:explicitFindStuff(QWidg

c++ - QWidget::heightForWidth() 未被调用

我想让我的小部件始终具有正方形大小。正在关注thisanswer,我已经覆盖了QWidget::heightForWidth(),并且我还在构造函数中调用了setHeightForWidth(true),正如@peppe所建议的那样。大小策略设置为Preferred,Preferred(对于水平大小和垂直大小)。但是,heightForWidth()没有被调用。我做错了什么吗?这是我的Widget类中的heightForWidth()声明:virtualintheightForWidth(int)const;这发生在Linux和Windows上。 最佳答案

c++ - 在 Ubuntu 上的 QT5 中将透明 QWidget 放在 QMediaView 之上

目标我希望基于QT5的GUI的背景是正在播放的视频文件。我还希望能够为我的GUI组件设置透明样式,以便视频可以通过它们显示。我不确定这是否完全有可能实现。可能是我刚刚错过了一条重要线索(我毕竟是Qt初学者),也可能是它根本无法正常工作。但作为一个乐观主义者,我已经尽了最大的努力。第一次尝试我最小的第一次尝试是这样的:intmain(intargc,char**argv){QApplicationapp(argc,argv);QMediaPlayer*media=newQMediaPlayer(0);QVideoWidget*video=newQVideoWidget(0);//newQ

c++ - QT - 主要小部件 - 堆栈还是堆?

我有点困惑是应该在堆栈上还是在堆上初始化我的主要小部件。在“使用QT4进行C++GUI编程”中,主要的小部件是在堆栈上初始化的。在我说更多之前,我先解释一下我的意思:intmain(intargc,char*argv[]){QApplicationapp(argc,argv);MainWindowmainWin;mainWin.show();returnapp.exec();}现在,也许这只是因为它更安全,也许是因为他们不想让读者对QT中的内存分配感到困惑。省略对从QObject继承的对象的任何删除操作肯定会让读者“忘记”QT对象的内存管理。但是,我的问题是,我们应该更喜欢这种方法还是

c++ - 删除 QWidget 周围的额外间距

如何去除QWidget周围多余的间距?这是一个简单的例子。小部件的空间是灰色的;你看,它的内容(图像、文本和按钮)周围有一些空间(大约0.3-0.4厘米)。小部件的空间被突出显示setAutoFillBackground(true);QPalettepal(palette());pal.setColor(QPalette::Background,QColor("#e5e5e5"));setPalette(pal);这是内容(通过运行setStyleSheet("background-color:red");为整个小部件突出显示。我所说的“移除额外间距”是指移除内容周围大约0.2-0.3

c++ - Qt - 从 QWidget 的布局中清除所有小部件

我在对话框中有一个QWidget。在程序运行的过程中,几个QCheckBox*对象被添加到布局中,如下所示:QCheckBox*c=newQCheckBox("Checkboxtext");ui->myWidget->layout()->addWidget(c);这适用于所有复选框。但是,我的对话框中还有一个名为“clear”的QPushButton,当它被按下时应该清空myWidget中的所有内容,使其保持空白,就像在任何QCheckboxes已添加。我一直在网上和文档中四处寻找,但我无法找到执行此操作的方法。我找到了this我认为与我的问题相似的问题,并尝试了这样的解决方案:voi