dayjournal memo

Total 975 articles!!

Qt #002 - ウィンドウ常に前面表示

Yasunori Kirimoto's avatar



画像



QGISで、ウィンドウを常に前面表示するにはQtを利用して下記のように記述します。

今回は前もってQtDesigner等で任意のウィンドウを作成しておきます。



# -*- coding: utf-8 -*-

# QGIS2ではPyQt4.QtGui, PyQt4.QtGui
from PyQt4.QtCore import *
from PyQt4.QtGui import *

# QGIS3ではPyQt5.QtGui, PyQt5.QtGui
from PyQt5.QtCore import *
from PyQt5.QtGui import *

class Ui_DialogBase(object):
    def setupUi(self, DialogBase):
        DialogBase.setObjectName("DialogBase")
        DialogBase.resize(220, 75)

        self.setWindowFlags(Qt.WindowStaysOnTopHint)

        self.pushButton_add = QPushButton(DialogBase)
        self.pushButton_add.setGeometry(QRect(60, 10, 100, 40))
        font = QFont()
        font.setPointSize(9)
        self.pushButton_add.setFont(font)
        self.pushButton_add.setObjectName("pushButton_add")
        self.retranslateUi(DialogBase)
        QMetaObject.connectSlotsByName(DialogBase)

    def retranslateUi(self, DialogBase):
        DialogBase.setWindowTitle(u"sample")
        self.pushButton_add.setText(u"add")

class SampleDialog(QDialog, Ui_DialogBase):
    def __init__(self, parent=None):
        super(SampleDialog, self).__init__(parent)
        self.setupUi(self)

sd = SampleDialog()
sd.show()

実行すると常に前面になったウィンドウが表示されます。


ウィンドウを常に前面にする:


self.setWindowFlags(Qt.WindowStaysOnTopHint)

Qtで作成したウィンドウを、QGIS等で常に前面に表示することが可能です。



book

Q&A