Python OpenCV窗口必须出现在所有窗口的前面

Python OpenCV窗口必须出现在所有窗口的前面,python,python-2.7,opencv,window,Python,Python 2.7,Opencv,Window,我有一个GUI对话框,其中包含一些按钮,单击这些按钮将调用一个函数来显示图像。但是,单击按钮时,OpenCV的窗口将显示在对话框后面。我希望单击按钮时OpenCV窗口出现在它前面 下面是创建窗口并显示图像的代码片段 cv2.namedWindow('image',0) cv2.resizeWindow('image',1200,720) while(1): cv2.imshow('image', self.img_res) k = cv2

我有一个GUI对话框,其中包含一些按钮,单击这些按钮将调用一个函数来显示图像。但是,单击按钮时,OpenCV的窗口将显示在对话框后面。我希望单击按钮时OpenCV窗口出现在它前面

下面是创建窗口并显示图像的代码片段

    cv2.namedWindow('image',0)
    cv2.resizeWindow('image',1200,720)

    while(1):
        cv2.imshow('image', self.img_res)
        k = cv2.waitKey(1) & 0xFF
        if k == ord('m'):
            res = 1
            break
        elif k == 27:
            break
我已经看到了一些使用win32gui模块的示例,但我不确定在这里如何使用它


(我在Windows中使用的是Python 2.7)

我不知道您的完整代码,但当我这样尝试时,它会出现在窗口前面。希望有帮助

import tkinter as tk
from tkinter import *
import cv2

class GUI:
    def __init__(self, master):
        self.event = 1
        self.master = master
        self.img_res = img = cv2.imread('image.jpg', 0)
        self.b = Button(self.master, text='Show image', command=self.window)
        self.b.pack()

    def window(self, event=None):
        while self.event == 1:
            cv2.imshow('image', self.img_res)
            k = cv2.waitKey(1) & 0xFF
            if k == ord('m'):
                res = 1
                break
            elif k == 27:
                break


def main(): 
    root = tk.Tk()
    app = GUI(root)
    root.mainloop()

if __name__ == '__main__':
    main()
补充:

您也可以尝试导入ctypes

import ctypes

ctypes.windll.kernel32.GetConsoleWindow()