小编Tob*_*old的帖子

PyQt4:窗口显示在hide()和show()之后的另一个位置

使用PyQt4,当我隐藏窗口并在之后显示它时,它出现在另一个位置(至少在Linux上).示例代码:

#!/usr/bin/python3

from PyQt4.QtGui import *

app = QApplication([])
widget = QWidget()
widget.setLayout(QVBoxLayout())
label = QLabel()
widget.layout().addWidget(label)

def hideShow():
    widget.hide()
    widget.show()

widget.layout().addWidget(QPushButton('Hide/Show', clicked = hideShow))
widget.show()
app.exec_()
Run Code Online (Sandbox Code Playgroud)

窗口消失并出现,但略低于原始位置的右侧.我认为它被实际小部件周围窗口管理器框架的大小所取代.

如何将窗口放置在确切的位置?为什么它会移动?它不应该留在原地吗?

python positioning window pyqt

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

R:在y轴上具有分钟和秒的箱线图

当我boxplot在R中以秒为单位测量一些数据时,如何将y轴的比例从秒改为分钟和秒?

例如,当我做这样的事情时:

data <- c(298, 507, 1008, 346)
boxplot(data)
Run Code Online (Sandbox Code Playgroud)

我得到一个boxploty轴从300到1000.我想在那里有"5:00"到"16:40",只需将秒转换为分钟和秒.

datetime r boxplot

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

使用Certum证书进行代码签名

我想签署一个我的开源程序的静态.exe版本,以便它可以"正常"方式执行到"普通"Windows用户.

我从certum.eu购买了一个开源代码签名证书,以便能够做到这一点.

在互联网上进行了一些搜索之后,我尝试使用osslsigncode 1.7.1在我的Linux机器上使用来签署exe文件

osslsigncode sign -pkcs12 cert.p12 -pass "..." -h sha2 -t http://timestamp.verisign.com/scripts/timstamp.dll -in some.exe -out some-signed.exe
Run Code Online (Sandbox Code Playgroud)

有人在Windows 10上测试它,会弹出一个粗略警告:"Windows保护您的PC.Windows SmartScreen阻止了无法识别的应用程序启动.运行此应用程序可能会使您的PC面临风险."

所以我尝试使用本机Windows工具signtool.exe来签名.我在旧的虚拟Windows XP中安装了它(在那里我也编译了程序;我没有访问任何其他Windows机器)并用以下方式签署了exe文件

"C:\Programme\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f C:\cert.p12 /p "..." /t http://timestamp.verisign.com/scripts/timstamp.dll C:\some.exe
Run Code Online (Sandbox Code Playgroud)

这个工具也说一切都还好,但仍然会弹出同样的警告.

这样,证书就没用了,因为"签名"的exe文件确实产生了与未签名的文件完全相同的警告.我非常感谢这方面的帮助.

windows code-signing code-signing-certificate signtool

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

QLineEdit:显示处理后的文本,而不是输入的文本,但保留它(自定义回显模式)

我想要QLineEdit不显示输入的文本,而是显示经过处理的版本,同时保留原始文本并在通过 请求时返回它text()。就像密码回显模式一样,但我不希望每个字符都被屏蔽。我想虚拟化空间:

\n\n

例如 当some text with spaces in between输入时,some\xc2\xb7text\xc2\xb7with\xc2\xb7spaces\xc2\xb7in\xc2\xb7between应显示出来以便人们可以看到空格。就像您在 LibreOffice 中激活 \xc2\xb6 符号一样。

\n\n

QLineEdit::displayText(),但是不能设置,只能读取。另外,echoMode只能通过枚举来设置,并且通过EchoMode::Password设置,处理似乎发生在 的私有函数中QLineEdit,因此我也无法覆盖某些处理函数。

\n\n

这可能吗?

\n

c++ qt qlineedit qt5

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

启用自动换行的 QLabel 的垂直尺寸

我有一个QLabelQVBoxLayout. 大多数情况下,它只有一行文本,但有时,文本可能太长而无法容纳在一行中。所以我必须启用wordWrap.

我希望标签尽可能(垂直)小,因此我设置setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum).

现在,如果有足够的垂直空间,标签会更高,因为它必须只有一行:

启用自动换行的标签

在相同的窗口大小且未启用自动换行的情况下,标签仅占用我希望它占用的最小空间:

没有自动换行的标签

这也可以通过启用 wordWrap 并且独立于窗口高度来实现吗?

c++ qt qlabel qsizepolicy qvboxlayout

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

如何禁用QDockWidget标题栏的上下文菜单

我有几个QDockWidgets都不是closabale(使用Qt 5.6).因此,右键单击其中一个标题栏时显示的上下文菜单只有禁用的条目,我想禁用整个上下文菜单.

我试图将contextMenuPolicy设置为NoContextMenu但没有成功.

然后我尝试使用QDockWidget的子类,覆盖ContextMenuEvent并忽略它.菜单仍然显示.

然后我尝试安装一个事件过滤器来捕获ContextMenuEvent,但它没有捕获任何,只有PaintEvents,ResizeEvents等.

我没有想法...任何帮助将不胜感激!

qt contextmenu qdockwidget

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

使用PyQt绘制由多个点组成的线

我想通过使用PyQt在Python脚本中单击鼠标来绘制由多个点组成的线.我需要所有坐标的坐标,我希望能够删除该行.这是我的脚本完成所有工作,除了图形线条绘图本身,它只是打印它的作用:

#!/usr/bin/python3

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

class endomess(QMainWindow):

    def __init__(self):
        QMainWindow.__init__(self)
        self.draw = False

    def mousePressEvent(self, event):

        if event.button() == Qt.LeftButton:

            if self.draw == False:
                print('Starting to draw at', str(event.pos()))
                self.draw = True
                self.linePoints = []

            elif self.draw == True:
                print('Appending', str(event.pos()))

            self.linePoints.append(event.pos())

        elif event.button() == Qt.RightButton:
            if self.draw == True:
                print('Finished drawing. List of all points:', str(self.linePoints))
                self.draw = False

def main(argv):
    app = QApplication(argv, True)
    wnd = endomess()
    wnd.show()
    sys.exit(app.exec_())

if __name__ …
Run Code Online (Sandbox Code Playgroud)

python drawing pyqt pyqt4

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

如何禁用QTableWidget中的选择突出显示

我有一个QTableWidget的有残疾的setSelectionMode(QTableWidget的:: NOSELECTION),我填不具备的Qt :: ItemIsEditable标志QTableWidgetItems.

然而,单击的单元格会获得某种光标(在我的情况下,底部的黑线):

突出显示的细胞

如何禁用此"光标"?

c++ python qt qt4 qtablewidget

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