2017-08-07 5 views
0

私は簡単な質問があることを願っています。私はpyqt mainwindowを持っていて、サブウィンドウの領域はmdiです。私は、現在のサブウィンドウからタイトルのテキストを取得し、それを変数に設定したいと考えています。PYQT5ウィンドウタイトルからテキストを取得しますか?

私がこれをやっている理由は、メインウィンドウの他のセクションをクリックすると、入力されたデータを編集するために開いているサブウィンドウがmdiです。一度に複数のデータセットを開いて編集できるようにしたいので、タイトルバーのデータのディレクトリキーを設定しています。私は、現在の瞬間にどのデータセットが編集されているかを区別するのが良い方法だと思っていました。

これが最良の方法であるか、または私が望むものを達成するための良い方法であるかどうかはわかりません。もっと良い方法があれば、それを聞いてみたいと思っています。

ありがとうございます。

+1

コードを表示してください – eyllanesc

+0

Qt C++ドキュメントに[QMdiArea :: subWindowActivated() '](http://doc.qt.io/qt-5/qmdiarea.html#subWindowActivated)が見つかりました。 ['MDISubWindow'](http://doc.qt.io/qt-5/qmdisubwindow.html)は[' QWidget'](http://doc.qt.io/qt-5/qwidget .html)にはプロパティ['windowTitle'](http://doc.qt.io/qt-5/qwidget.html#windowTitle-prop)があります。私はコードで試してみませんでしたが、私にとっては計画のように思えます... – Scheff

答えて

2

QMdiAreaは、方法QMdiArea::activeSubWindow()ならびに信号QMdiArea::subWindowActivated()を提供する。

QMdiSubWindowは、QWidgetから(直接的に)派生し、次にQWidget::windowTitleという特性を提供します。

これをまとめるとうまくいくはずです。

私はMCVEを「概念の証明」として(そして私のPython/PyQtスキルを訓練するために)用意しました。

サンプルコードtestQMDIActiveSubWindow.py

#!/usr/bin/python3 

import sys 
from PyQt5.QtWidgets import QApplication, QMainWindow, QMdiArea, QMdiSubWindow 

def updateActiveChild(subWindow): 
    win.setWindowTitle("MDI Test: '%s'" % subWindow.windowTitle()) 

if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    # build GUI 
    win = QMainWindow() 
    win.resize(640, 480) 
    mdiArea = QMdiArea() 
    for title in ["Data:1", "Data:2", "Data:3", "Data:n"]: 
    mdiChild = QMdiSubWindow() 
    mdiChild.setWindowTitle(title) 
    mdiArea.addSubWindow(mdiChild) 
    mdiArea.tileSubWindows() 
    win.setCentralWidget(mdiArea) 
    win.show() 
    updateActiveChild(mdiArea.activeSubWindow()) 
    # install signal handlers 
    mdiArea.subWindowActivated.connect(updateActiveChild) 
    # exec. application 
    sys.exit(app.exec_()) 

Iはcygwin64はWindows 10(64ビット)のpython3でそれをテスト:

snapshot sequence of testQMDIActiveSubWindow.py in action

アクティブサブウインドウのタイトルに反映されますメインウィンドウのタイトル。

関連する問題