Hướng dẫn python message box auto close - hộp tin nhắn python tự động đóng

Tôi đã biết cách tạo hộp thư bằng Python:

import ctypes

ctypes.windll.user32.MessageBoxW(0, 'test', "Reminding", 0)

Tuy nhiên, tôi muốn nó tự đóng lại trong vài giây sau khi nó xuất hiện.

Có phương pháp nào để nhận ra nó không?

Mã psuedo:

def AutoCloseMessageBoxW(text, title, close_until_seconds)

Tôi đã tìm thấy rất nhiều phương pháp để nhận ra điều này bằng ngôn ngữ khác như C# và Java.

Nhưng tôi không thể tìm thấy bất kỳ phương pháp nào để nhận ra nó bằng Python.

Hỏi ngày 6 tháng 4 năm 2016 lúc 3:25Apr 6, 2016 at 3:25

Hướng dẫn python message box auto close - hộp tin nhắn python tự động đóng

1

import ctypes
import threading
import time
#ctypes.windll.user32.MessageBoxA(0, 'test', "Reminding", 0)

def worker(title,close_until_seconds):
    time.sleep(close_until_seconds)
    wd=ctypes.windll.user32.FindWindowA(0,title)
    ctypes.windll.user32.SendMessageA(wd,0x0010,0,0)
    return

def AutoCloseMessageBoxW(text, title, close_until_seconds):
    t = threading.Thread(target=worker,args=(title,close_until_seconds))
    t.start()
    ctypes.windll.user32.MessageBoxA(0, text, title, 0)


AutoCloseMessageBoxW('112','TEST_CLOSE',3)

Reti43

9.4553 huy hiệu vàng26 Huy hiệu bạc44 Huy hiệu đồng3 gold badges26 silver badges44 bronze badges

Đã trả lời ngày 6 tháng 4 năm 2016 lúc 4:20Apr 6, 2016 at 4:20

2

Python: Hàm gọi với Variabele? Kết thúc lỗi.

class CustomMessageBox(QMessageBox):

def __init__(self, *__args):
    QMessageBox.__init__(self)
    self.timeout = 0
    self.autoclose = False
    self.currentTime = 0

def showEvent(self, QShowEvent):
    self.currentTime = 0
    if self.autoclose:
        self.startTimer(1000)

def timerEvent(self, *args, **kwargs):
    self.currentTime += 1
    if self.currentTime >= self.timeout:
        self.done(0)

@staticmethod
def showWithTimeout(timeoutSeconds, message, title, icon=QMessageBox.Information, buttons=QMessageBox.Ok):
    w = CustomMessageBox()
    w.autoclose = True
    w.timeout = timeoutSeconds
    w.setText(message)
    w.setWindowTitle(title)
    w.setIcon(icon)
    w.setStandardButtons(buttons)
    w.exec_()

efclem

CustomMessageBox.showWithTimeout(3, "Auto close in 3 seconds", "QMessageBox with autoclose", icon=QMessageBox.Warning)

Tháng Tư-22-2020, 02:35 PM Bài cuối cùng: Buran

Trong chức năng này, ban đầu y không có giá trị, nhưng một cuộc gọi đến foo () không có lỗi. Tại sao?

  • Pedroski55
  • 1
  • 2
  • 3
  • 4
  • 5

Tháng 12-19-2020, 07:30 sáng Bài cuối cùng: NDC85430

Đấu tranh trong giờ qua để xác định chức năng và gọi lại

Godlyredwall

Cảm ơn!

Bài viết: 11.40011,400

Chủ đề: 433433

Tham gia: Tháng 9 năm 2016Sep 2016

Danh tiếng: 441 441

Tháng 5-10-2018, 08:14 PM (Bài đăng này được sửa đổi lần cuối: Tháng 5-10-2018, 08:15 PM bởi Larz60+.) (This post was last modified: May-10-2018, 08:15 PM by Larz60+.)

Hộp thông báo là trong hầu hết các trường hợp GUI theo mặc định. Một cách rất đơn giản để làm điều này là sử dụng wxpython. Tôi đã viết cái này cho Python 3.6.5 trên Windows 7, nhưng sẽ hoạt động trên các hệ điều hành khác để cài đặt wxpython:
A very simple way to do this is to use wxpython.
I wrote this for python 3.6.5 on windows 7, but should work on other OS's
to install wxpython:

pip install wxpython
import wx


class PopUpMsg():
    def __init__(self):
        self.app = wx.App()

    def popup_msg(self, message, title=''):
        """
        Display message in standard wx.MessageDialog
        :param message: (string) Value to be displayed
        :return: None
        """
        msg_dlg = wx.MessageDialog(None, message, title, wx.OK | wx.ICON_ERROR)
        val = msg_dlg.ShowModal()
        msg_dlg.Show()
        msg_dlg.Destroy()
        return val


def testit():
    '''
    Test message class
    :return: None
    '''
    pm = PopUpMsg()
    val = pm.popup_msg(message='Click OK if it will make you happy!', title='Do Nothing Message Box')
    if val == wx.ID_OK:
        print('Yippie')


if __name__ == '__main__':
    testit()

Bạn có thể nhập mô -đun này vào bất kỳ chương trình nào và sử dụng mã tương tự như Testit bất cứ nơi nào bạn cần để hiển thị thông báo

Có thể các chủ đề liên quan…
Chủ đề Tác giả Trả lời Lượt xem Bài cuối cùng
& nbsp;Cách gọi một đối tượng trong một chức năng khác trong MayaBSTOUT0 1,382 Tháng 4-05-2021, 07:12 PM Bài cuối cùng: BSTOUT
Last Post: bstout
& nbsp;Cách gọi một đối tượng trong một chức năng khác trong MayaBSTOUT8 2,230 Tháng 4-05-2021, 07:12 PM Bài cuối cùng: BSTOUT
Last Post: ndc85430
& nbsp;Cách gọi một đối tượng trong một chức năng khác trong MayaBSTOUT2 1,471 Tháng 4-05-2021, 07:12 PM Bài cuối cùng: BSTOUT
Last Post: deanhystad
& nbsp;Cách gọi một đối tượng trong một chức năng khác trong MayaBSTOUT1 1,202 Tháng 4-05-2021, 07:12 PM Bài cuối cùng: BSTOUT
Last Post: bowlofred
& nbsp;Cách gọi một đối tượng trong một chức năng khác trong MayaBSTOUT5 2,222 Tháng 4-05-2021, 07:12 PM Bài cuối cùng: BSTOUT
Last Post: snippsat
& nbsp;Cách gọi một đối tượng trong một chức năng khác trong MayaBSTOUT1 1,478 Tháng 4-05-2021, 07:12 PM Bài cuối cùng: BSTOUT
Last Post: buran
& nbsp;Cách gọi một đối tượng trong một chức năng khác trong MayaBSTOUT5 1,888 Tháng 4-05-2021, 07:12 PM Bài cuối cùng: BSTOUT
Last Post: buran
& nbsp;Cách gọi một đối tượng trong một chức năng khác trong MayaBSTOUT0 1,338 Tháng 4-05-2021, 07:12 PM Bài cuối cùng: BSTOUT
Last Post: Schlangenversteher
& nbsp;Cách gọi một đối tượng trong một chức năng khác trong MayaBSTOUT2 1,473 Tháng 4-05-2021, 07:12 PM Bài cuối cùng: BSTOUT
Last Post: mtran
& nbsp;Cách gọi một đối tượng trong một chức năng khác trong MayaBSTOUT3 1,689 Tháng 4-05-2021, 07:12 PM Bài cuối cùng: BSTOUT
Last Post: rix