<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
  <title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Le 02/12/10 00:32, Ian a écrit :
<blockquote cite="mid:4CF6DB20.2040102@gmail.com" type="cite">Hi all,
  <br>
  <br>
How can I cause a repaint event on a window that is not the current
focus?
  <br>
  <br>
When I click on the window it comes to the front, repaints itself and
shows the (changed) data correctly.
  <br>
  <br>
However in my use case, data shown in the background window, has been
updated in another window, and I want to update the background window
(without activating it or scribbling on the screen where I shouldn't). 
Is this possible?
  <br>
  <br>
I'm using PyQt on Windows 7.
  <br>
  <br>
Thanks
  <br>
  <br>
Ian
  <br>
  <br>
  <br>
_______________________________________________
  <br>
PyQt mailing list    <a class="moz-txt-link-abbreviated" href="mailto:PyQt@riverbankcomputing.com">PyQt@riverbankcomputing.com</a>
  <br>
<a class="moz-txt-link-freetext" href="http://www.riverbankcomputing.com/mailman/listinfo/pyqt">http://www.riverbankcomputing.com/mailman/listinfo/pyqt</a>
  <br>
  <br>
</blockquote>
Hi,<br>
<br>
Exemple :<br>
<br>
# -*- coding: utf-8 -*-<br>
<br>
import sys<br>
from PyQt4 import QtCore, QtGui<br>
<br>
class Main(object):<br>
    def __init__(self, MainWindow):<br>
        self.centralwidget = QtGui.QWidget(MainWindow)<br>
        self.colors =['black', 'blue', 'white', 'yellow', 'red']<br>
        self.pointer = 0<br>
        MainWindow.show()<br>
        self.create_dialog()<br>
<br>
    def change_background(self):<br>
        chain = "".join(["QWidget {background-color: ", <br>
                            self.colors[self.pointer], "}"])<br>
        self.centralwidget.setStyleSheet(chain)<br>
        self.pointer += 1<br>
        if self.pointer == 5:<br>
            self.pointer = 0<br>
<br>
    def create_dialog(self):<br>
        control = QtGui.QDialog()<br>
        dialog = Dialog(control, self)<br>
        control.exec_()<br>
<br>
class Dialog(object):<br>
    def __init__(self, Dialog, m):<br>
        Dialog.setWindowModality(QtCore.Qt.WindowModal)<br>
        self.main = m<br>
        self.centralwidget = QtGui.QWidget(Dialog)<br>
        self.grid = QtGui.QGridLayout(Dialog)<br>
        self.button = QtGui.QPushButton(Dialog)<br>
        self.button.setText("Change background")<br>
        self.grid.addWidget(self.button, 0, 0, 1, 1)<br>
        self.button.clicked.connect(self.change_color)<br>
<br>
    def change_color(self):<br>
        self.main.change_background()<br>
<br>
if __name__ == "__main__":<br>
    app = QtGui.QApplication(sys.argv)<br>
    MainWindow = QtGui.QMainWindow()<br>
    ui = Main(MainWindow)<br>
    MainWindow.show()<br>
    sys.exit(app.exec_())<br>
<br>
You can also, when the color change, send some datas from Main to
Dialog, i.e. one thumbnail<br>
that reflect the new appearance of main window.<br>
<br>
<div class="moz-signature">-- <br>
Vincent V.V.<br>
<a href="https://launchpad.net/oqapy">Oqapy</a></div>
</body>
</html>