Как отображать диалоги типа ColorPickerDialog в главном окне, а не как отдельное окно - PullRequest
0 голосов
/ 04 января 2019

Я хочу поместить диалоговое окно выбора цвета как часть основного окна, а не как диалоговое окно (отдельное окно).

Код ниже короче исходного, потому что я удаляю некоторые части, чтобы сделать егопросто.

Вот так это выглядит.

enter image description here

Я удалил рамки окна, чтобы оно выглядело как частьосновного, но когда я нажимаю в главном окне, другое сворачивается.Я бы хотел, чтобы он был похож на виджет главного окна, а не на диалоговое окно.

Заранее спасибо.

import os
import sys
from PyQt4 import QtGui, QtCore
from win32api import GetSystemMetrics, GetMonitorInfo, MonitorFromPoint

class Window(QtGui.QMainWindow):

   def __init__(self):
    super(Window, self).__init__()

    self.setWindowTitle("RGB APP")
    self.setWindowIcon(QtGui.QIcon('')) #Pic.
    self.toolBar = self.addToolBar("")  # toolbar name

    self.home()
    self.show()

  def home(self):
    ########################################################################
    global Screen_width
    Screen_width = GetSystemMetrics(0)
    global Screen_height
    Screen_height = GetSystemMetrics(1)


    monitor_info = GetMonitorInfo(MonitorFromPoint((0, 0)))
    monitor_area = monitor_info.get("Monitor")
    work_area = monitor_info.get("Work")

    global usablescreenheight
    usablescreenheight=work_area[3]-30     #tittle bar takes 30px
    global usablescreenwidht
    usablescreenwidht=work_area[2]
                                        #   print("Height =", Screen_height)
                                        #   print("Width =", Screen_width)
    self.setGeometry(0, 30, usablescreenwidht, usablescreenheight)

    ########################################################################


class ColorDialog(QtGui.QColorDialog):
    def __init__(self, initial=QtGui.QColor(), parent=None):
     super(ColorDialog, self).__init__(parent)
     self.setOption(QtGui.QColorDialog.NoButtons)
     self.setGeometry(5, usablescreenheight-303,1920,1080)         #303 window size

     self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
     self.home()
     self.show()

    def home(self):

     colorpickerbackground = QtGui.QLabel(self)
     colorpickerbackground.setGeometry(5, 30, usablescreenwidht-5*2, usablescreenheight-5*2-27)






def run():
 app = QtGui.QApplication(sys.argv)
 GUI = Window()
 w=ColorDialog()
 sys.exit(app.exec_())

run()
...