微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 PyQt5 中相对于父窗口移动子窗口?

如何解决如何在 PyQt5 中相对于父窗口移动子窗口?

我有以下代码,但我希望新窗口不完全设置在主窗口的中心。我更愿意将它向左移动一点(例如向左移动 20 像素,向上移动 20 像素),我尝试过 moveto() 和 moveLeft(),但无法真正弄清楚。我可以使用 topLeft() 进行管理,但它与主窗口无关。下面的代码用于居中。问题是如何修改我的代码以获得上面提到的结果?

df_1 = df.merge(df_subset,how='left',indicator=True)
df_1[df_1['_merge'] == 'left_only'][['a','b','c']]

它看起来像这样:

enter image description here

想要的结果:

enter image description here

解决方法

解决这个问题的一种方法是首先将子矩形相对于父矩形居中,然后通过相对偏移量转换结果:

class Form(QMainWindow):
    ...    

    def show_all_suffix_list(self):            
        self.suffix_list.ui.all_suffix_list.clear()
        open_known_list = open("known.txt","r")
        for known in open_known_list.read().split('\n'):
            self.suffix_list.ui.all_suffix_list.insertItem(0,known)

        # set initial size
        rect = QtCore.QRect(0,300,300)
        # centre on parent
        rect.moveCenter(self.geometry().center())
        # adjust by relative offset (negative values go left/up)
        rect.translate(QtCore.QPoint(-50,0))

        self.suffix_list.setGeometry(rect)
        self.suffix_list.show()
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。