From Cristian.Maureira-Fredes at qt.io Thu Apr 5 18:11:54 2018 From: Cristian.Maureira-Fredes at qt.io (=?iso-8859-1?Q?Cristi=E1n_Maureira-Fredes?=) Date: Thu, 5 Apr 2018 16:11:54 +0000 Subject: [PySide] Weekly Update 05.04.2018 Message-ID: Hello, A brief summary of the status of the project: - There is a first snapshot of the official Qt for Python documentation in https://doc-snapshots.qt.io/qtforpython/ we are still working on it, and many changes will be included in the news weeks. - Regarding the generation of the documentation, there are a few missing steps for the automation of the process. - We are planning a set of Blog posts for the official launch of Qt for Python, so keep an eye on https://blog.qt.io for the next weeks. - There is effort of reduce the size of the wheels for the launch of the project and a few things were found. We are still working on this matter. - Effort is being made to build a nice Tab browser example to be included in the official Qt for Python examples. - A couple of issues are stopping us to merge patchs to the PySide2 repository but hopefully will be solved in the next couple of days - Hopefully, in less than a month we will have heap types integrated in the project. - Many bugs were solved and are awaiting for our CI system to be integrated into all our branches Cheers! ----- Cristián Maureira-Fredes Software Engineer The Qt Company GmbH Rudower Chaussee 13 D-12489 Berlin Geschäftsführer: Mika Pälsi, Juha Varelius, Mika Harjuaho Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B From rymg19 at gmail.com Thu Apr 5 20:24:03 2018 From: rymg19 at gmail.com (Ryan Gonzalez) Date: Thu, 05 Apr 2018 13:24:03 -0500 Subject: [PySide] Weekly Update 05.04.2018 In-Reply-To: References: Message-ID: <162970d21b8.2837.db5b03704c129196a4e9415e55413ce6@gmail.com> I have one question... Is it going to be confusing with Qt for Python and PyQt, given the similarities in their names? On April 5, 2018 11:12:15 AM Cristián Maureira-Fredes wrote: > Hello, > > A brief summary of the status of the project: > > - There is a first snapshot of the official Qt for Python documentation in > https://doc-snapshots.qt.io/qtforpython/ > we are still working on it, and many changes will be included in the news > weeks. > - Regarding the generation of the documentation, there are a few missing steps > for the automation of the process. > > - We are planning a set of Blog posts for the official launch of Qt for Python, > so keep an eye on https://blog.qt.io for the next weeks. > > - There is effort of reduce the size of the wheels for the launch of the > project > and a few things were found. We are still working on this matter. > > - Effort is being made to build a nice Tab browser example to be included > in the official Qt for Python examples. > > - A couple of issues are stopping us to merge patchs to the PySide2 repository > but hopefully will be solved in the next couple of days > > - Hopefully, in less than a month we will have heap types integrated in the > project. > > - Many bugs were solved and are awaiting for our CI system to be integrated > into all our branches > > Cheers! > > ----- > Cristián Maureira-Fredes > Software Engineer > > The Qt Company GmbH > Rudower Chaussee 13 > D-12489 Berlin > > Geschäftsführer: Mika Pälsi, > Juha Varelius, Mika Harjuaho > Sitz der Gesellschaft: Berlin, > Registergericht: Amtsgericht > Charlottenburg, HRB 144331 B > > _______________________________________________ > PySide mailing list > PySide at qt-project.org > http://lists.qt-project.org/mailman/listinfo/pyside -- Ryan (ライアン) Yoko Shimomura, ryo (supercell/EGOIST), Hiroyuki Sawano >> everyone else https://refi64.com/ From giuseppemasetti at yahoo.it Thu Apr 5 20:41:54 2018 From: giuseppemasetti at yahoo.it (Giuseppe Masetti) Date: Thu, 5 Apr 2018 14:41:54 -0400 Subject: [PySide] Weekly Update 05.04.2018 In-Reply-To: <162970d21b8.2837.db5b03704c129196a4e9415e55413ce6@gmail.com> References: <162970d21b8.2837.db5b03704c129196a4e9415e55413ce6@gmail.com> Message-ID: <55eaf4af-a78e-4fda-5e24-9a8c2068a396@yahoo.it> Well, the bright side is that there is Qt in the name. I had to explain several times that PySide is a Python binding for Qt4! On 4/5/2018 2:24 PM, Ryan Gonzalez wrote: > I have one question... Is it going to be confusing with Qt for Python > and PyQt, given the similarities in their names? > > On April 5, 2018 11:12:15 AM Cristián Maureira-Fredes > wrote: > >> Hello, >> >> A brief summary of the status of the project: >> >> - There is a first snapshot of the official Qt for Python >> documentation in >>   https://doc-snapshots.qt.io/qtforpython/ >>   we are still working on it, and many changes will be included in >> the news   weeks. >> - Regarding the generation of the documentation, there are a few >> missing steps >>   for the automation of the process. >> >> - We are planning a set of Blog posts for the official launch of Qt >> for Python, >>   so keep an eye on https://blog.qt.io for the next weeks. >> >> - There is effort of reduce the size of the wheels for the launch of >> the project >>   and a few things were found. We are still working on this matter. >> >> - Effort is being made to build a nice Tab browser example to be >> included >>   in the official Qt for Python examples. >> >> - A couple of issues are stopping us to merge patchs to the PySide2 >> repository >>  but hopefully will be solved in the next couple of days >> >> - Hopefully, in less than a month we will have heap types integrated >> in the project. >> >> - Many bugs were solved and are awaiting for our CI system to be >> integrated >>  into all our branches >> >> Cheers! >> >> ----- >> Cristián Maureira-Fredes >> Software Engineer >> >> The Qt Company GmbH >> Rudower Chaussee 13 >> D-12489 Berlin >> >> Geschäftsführer: Mika Pälsi, >> Juha Varelius, Mika Harjuaho >> Sitz der Gesellschaft: Berlin, >> Registergericht: Amtsgericht >> Charlottenburg, HRB 144331 B >> >> _______________________________________________ >> PySide mailing list >> PySide at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/pyside > > -- > Ryan (ライアン) > Yoko Shimomura, ryo (supercell/EGOIST), Hiroyuki Sawano >> everyone else > https://refi64.com/ > > > _______________________________________________ > PySide mailing list > PySide at qt-project.org > http://lists.qt-project.org/mailman/listinfo/pyside From chgans at gmail.com Fri Apr 6 01:07:51 2018 From: chgans at gmail.com (Christian Gagneraud) Date: Fri, 6 Apr 2018 11:07:51 +1200 Subject: [PySide] Weekly Update 05.04.2018 In-Reply-To: References: Message-ID: On 6 April 2018 at 04:11, Cristián Maureira-Fredes wrote: > Hello, > > A brief summary of the status of the project: > > - There is a first snapshot of the official Qt for Python documentation in > https://doc-snapshots.qt.io/qtforpython/ > we are still working on it, and many changes will be included in the news weeks. Congrats to all of you, this is awesome! I've noticed that the copyright notice at the bottom of the page is out dated, it still refers to 2017. Chris > - Regarding the generation of the documentation, there are a few missing steps > for the automation of the process. > > - We are planning a set of Blog posts for the official launch of Qt for Python, > so keep an eye on https://blog.qt.io for the next weeks. > > - There is effort of reduce the size of the wheels for the launch of the project > and a few things were found. We are still working on this matter. > > - Effort is being made to build a nice Tab browser example to be included > in the official Qt for Python examples. > > - A couple of issues are stopping us to merge patchs to the PySide2 repository > but hopefully will be solved in the next couple of days > > - Hopefully, in less than a month we will have heap types integrated in the project. > > - Many bugs were solved and are awaiting for our CI system to be integrated > into all our branches > > Cheers! > > ----- > Cristián Maureira-Fredes > Software Engineer > > The Qt Company GmbH > Rudower Chaussee 13 > D-12489 Berlin > > Geschäftsführer: Mika Pälsi, > Juha Varelius, Mika Harjuaho > Sitz der Gesellschaft: Berlin, > Registergericht: Amtsgericht > Charlottenburg, HRB 144331 B > > _______________________________________________ > PySide mailing list > PySide at qt-project.org > http://lists.qt-project.org/mailman/listinfo/pyside From redstone-cold at 163.com Sun Apr 8 04:22:53 2018 From: redstone-cold at 163.com (Zhao Lee) Date: Sun, 8 Apr 2018 10:22:53 +0800 (CST) Subject: [PySide] Weekly Update 05.04.2018 In-Reply-To: References: Message-ID: The ordered list was still omitted in the generated doc https://doc-snapshots.qt.io/qtforpython/PySide2/QtWidgets/QMessageBox.html#default-and-escape-keys see the original doc for the difference http://doc.qt.io/qt-5/qmessagebox.html#default-and-escape-keys The doc bug existed from the era of PySide, please fix ! 在2018年04月06 00时11分, "Cristián Maureira-Fredes"写道: Hello, A brief summary of the status of the project: - There is a first snapshot of the official Qt for Python documentation in https://doc-snapshots.qt.io/qtforpython/ we are still working on it, and many changes will be included in the news weeks. - Regarding the generation of the documentation, there are a few missing steps for the automation of the process. - We are planning a set of Blog posts for the official launch of Qt for Python, so keep an eye on https://blog.qt.io for the next weeks. - There is effort of reduce the size of the wheels for the launch of the project and a few things were found. We are still working on this matter. - Effort is being made to build a nice Tab browser example to be included in the official Qt for Python examples. - A couple of issues are stopping us to merge patchs to the PySide2 repository but hopefully will be solved in the next couple of days - Hopefully, in less than a month we will have heap types integrated in the project. - Many bugs were solved and are awaiting for our CI system to be integrated into all our branches Cheers! ----- Cristián Maureira-Fredes Software Engineer The Qt Company GmbH Rudower Chaussee 13 D-12489 Berlin Geschäftsführer: Mika Pälsi, Juha Varelius, Mika Harjuaho Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B _______________________________________________ PySide mailing list PySide at qt-project.org http://lists.qt-project.org/mailman/listinfo/pyside -------------- next part -------------- An HTML attachment was scrubbed... URL: From Cristian.Maureira-Fredes at qt.io Mon Apr 9 09:00:01 2018 From: Cristian.Maureira-Fredes at qt.io (=?UTF-8?Q?Cristi=c3=a1n_Maureira-Fredes?=) Date: Mon, 9 Apr 2018 09:00:01 +0200 Subject: [PySide] Weekly Update 05.04.2018 In-Reply-To: <162970d21b8.2837.db5b03704c129196a4e9415e55413ce6@gmail.com> References: <162970d21b8.2837.db5b03704c129196a4e9415e55413ce6@gmail.com> Message-ID: <02b706b2-01b3-4bfa-16a7-aedfd13f84d9@qt.io> On 04/05/2018 08:24 PM, Ryan Gonzalez wrote: > I have one question... Is it going to be confusing with Qt for Python > and PyQt, given the similarities in their names? > > On April 5, 2018 11:12:15 AM Cristián Maureira-Fredes > wrote: > >> Hello, >> >> A brief summary of the status of the project: >> ... >> >> Cheers! >> >> ----- >> Cristián Maureira-Fredes > > -- > Ryan (ライアン) > Yoko Shimomura, ryo (supercell/EGOIST), Hiroyuki Sawano >> everyone else > https://refi64.com/ Hello Ryan, as confuse at it could sound, you need to consider that change the name of a project is not a simple task, and not from the technical part but for the compatibility to all the users and others projects using PySide2. In the past there was an attempt to change the name, but there were a few negative reactions from people that are in charge of both, maintaining packages, and existing projects. At the moment we will continue with PySide2, but if there is any chance of renaming the project in the future, we will try to take it. Cheers -- Cristian Maureira-Fredes Software Engineer The Qt Company GmbH Rudower Chaussee 13 D-12489 Berlin Geschäftsführer: Mika Pälsi, Juha Varelius, Mika Harjuaho Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B -- From skab12 at gmail.com Mon Apr 9 22:46:32 2018 From: skab12 at gmail.com (Serge K.) Date: Mon, 9 Apr 2018 16:46:32 -0400 Subject: [PySide] QCombobox : Signal not emitted Message-ID: Hi Everyone, After setting a custom model on QCombobox, I do not receive anymore currentIndexChanged signal from my QCombobox (look below as an example) Did I do something wrong? from PySide2.QtCore import * from PySide2.QtGui import * from PySide2.QtWidgets import * class CustomModel(QAbstractListModel): """ Protocol model """ def __init__(self, *args, **kwargs): super(CustomModel, self).__init__(*args, **kwargs) self._protocol_list = [] def add_protocol(self, data, row=0): if not row: row = len(self._protocol_list) self.beginInsertRows(QModelIndex(), row, row) self._protocol_list.insert(row, data) self.endInsertRows() return self.index(len(self._protocol_list) - 1) def remove_protocol(self, item): for row, data in enumerate(self._protocol_list): if data.name.lower() == item.name.lower(): self.beginRemoveRows(QModelIndex(), row, row) self._protocol_list.pop(row) self.endRemoveRows() def rowCount(self, parent=QModelIndex()): if parent.isValid(): return 0 return len(self._protocol_list) def insertRows(self, row, count, index=QModelIndex()): self.beginInsertRows(QModelIndex(), row, row + count - 1) for j in range(row, row + count): self._protocol_list.insert(j, None) self.endInsertRows() return True def removeRows(self, row, count, index=QModelIndex()): self.beginRemoveRows(QModelIndex(), row, row + count - 1) for j in range(row, row + count)[::-1]: self._protocol_list.pop(j) self.endRemoveRows() return True def headerData(self, section, orientation, role=Qt.EditRole): return None def data(self, index, role=Qt.DisplayRole): if not index.isValid(): return None current_protocol = self._protocol_list[index.row()] if role == Qt.DisplayRole or role == Qt.EditRole: return current_protocol[0] return None def setData(self, index, value, role=Qt.EditRole): if role != Qt.EditRole: return True if index.isValid() and 0 <= index.row() < len(self._protocol_list): current_protocol = self._protocol_list[index.row()] if index.column() == 0: current_protocol[0] = value self.dataChanged.emit(index, index) return True return False def flags(self, index): if index.isValid(): return Qt.ItemFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable) return QAbstractListModel.flags(index) class combodemo(QWidget): def __init__(self, parent=None): super(combodemo, self).__init__(parent) layout = QHBoxLayout() self.cb = QComboBox() self.model = CustomModel() self.cb.setModel(self.model) self.cb.setModelColumn(0) self.model.add_protocol(("c", "A")) self.model.add_protocol(("c++", "B")) self.model.add_protocol(("Java", "C")) self.model.add_protocol(("C#", "D")) self.model.add_protocol(("Python", "E")) self.cb.currentIndexChanged.connect(self.selectionchange) self.cb.highlighted.connect(self.highlighted) layout.addWidget(self.cb) self.setLayout(layout) self.setWindowTitle("combo box demo") def highlighted(self, i): print("Highlighted: ", i) def selectionchange(self, i): print("Items in the list are :") for count in range(self.cb.count()): print(self.cb.itemText(count)) print("Current index", i, "selection changed ", self.cb.currentText()) def main(): app = QApplication(sys.argv) ex = combodemo() ex.show() sys.exit(app.exec_()) if __name__ == '__main__': main() -------------- next part -------------- An HTML attachment was scrubbed... URL: From Cristian.Maureira-Fredes at qt.io Tue Apr 10 09:09:31 2018 From: Cristian.Maureira-Fredes at qt.io (=?iso-8859-1?Q?Cristi=E1n_Maureira-Fredes?=) Date: Tue, 10 Apr 2018 07:09:31 +0000 Subject: [PySide] QCombobox : Signal not emitted In-Reply-To: References: Message-ID: Hello Serge, After executing your script, I get the following output: https://pastebin.com/2L3VYR0n I do get the output from `selectionchange` and `highlighted`, is this not the desire behavior? Cheers ________________________________________ From: PySide on behalf of Serge K. Sent: 09 April 2018 22:46:32 To: pyside at qt-project.org Subject: [PySide] QCombobox : Signal not emitted Hi Everyone, After setting a custom model on QCombobox, I do not receive anymore currentIndexChanged signal from my QCombobox (look below as an example) Did I do something wrong? from PySide2.QtCore import * from PySide2.QtGui import * from PySide2.QtWidgets import * class CustomModel(QAbstractListModel): """ Protocol model """ def __init__(self, *args, **kwargs): super(CustomModel, self).__init__(*args, **kwargs) self._protocol_list = [] def add_protocol(self, data, row=0): if not row: row = len(self._protocol_list) self.beginInsertRows(QModelIndex(), row, row) self._protocol_list.insert(row, data) self.endInsertRows() return self.index(len(self._protocol_list) - 1) def remove_protocol(self, item): for row, data in enumerate(self._protocol_list): if data.name.lower() == item.name.lower(): self.beginRemoveRows(QModelIndex(), row, row) self._protocol_list.pop(row) self.endRemoveRows() def rowCount(self, parent=QModelIndex()): if parent.isValid(): return 0 return len(self._protocol_list) def insertRows(self, row, count, index=QModelIndex()): self.beginInsertRows(QModelIndex(), row, row + count - 1) for j in range(row, row + count): self._protocol_list.insert(j, None) self.endInsertRows() return True def removeRows(self, row, count, index=QModelIndex()): self.beginRemoveRows(QModelIndex(), row, row + count - 1) for j in range(row, row + count)[::-1]: self._protocol_list.pop(j) self.endRemoveRows() return True def headerData(self, section, orientation, role=Qt.EditRole): return None def data(self, index, role=Qt.DisplayRole): if not index.isValid(): return None current_protocol = self._protocol_list[index.row()] if role == Qt.DisplayRole or role == Qt.EditRole: return current_protocol[0] return None def setData(self, index, value, role=Qt.EditRole): if role != Qt.EditRole: return True if index.isValid() and 0 <= index.row() < len(self._protocol_list): current_protocol = self._protocol_list[index.row()] if index.column() == 0: current_protocol[0] = value self.dataChanged.emit(index, index) return True return False def flags(self, index): if index.isValid(): return Qt.ItemFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable) return QAbstractListModel.flags(index) class combodemo(QWidget): def __init__(self, parent=None): super(combodemo, self).__init__(parent) layout = QHBoxLayout() self.cb = QComboBox() self.model = CustomModel() self.cb.setModel(self.model) self.cb.setModelColumn(0) self.model.add_protocol(("c", "A")) self.model.add_protocol(("c++", "B")) self.model.add_protocol(("Java", "C")) self.model.add_protocol(("C#", "D")) self.model.add_protocol(("Python", "E")) self.cb.currentIndexChanged.connect(self.selectionchange) self.cb.highlighted.connect(self.highlighted) layout.addWidget(self.cb) self.setLayout(layout) self.setWindowTitle("combo box demo") def highlighted(self, i): print("Highlighted: ", i) def selectionchange(self, i): print("Items in the list are :") for count in range(self.cb.count()): print(self.cb.itemText(count)) print("Current index", i, "selection changed ", self.cb.currentText()) def main(): app = QApplication(sys.argv) ex = combodemo() ex.show() sys.exit(app.exec_()) if __name__ == '__main__': main() From skab12 at gmail.com Tue Apr 10 16:11:19 2018 From: skab12 at gmail.com (Serge K.) Date: Tue, 10 Apr 2018 10:11:19 -0400 Subject: [PySide] QCombobox : Signal not emitted In-Reply-To: References: Message-ID: Thanks Cristian, This is the desired behavior but I do not get this result... That is really weird... Can you tell me what is your environment? Me : windows 10 + anaconda python 3.6.4 + pyside2==5.9.0a1 On Apr 10, 2018 3:09 AM, "Cristián Maureira-Fredes" < Cristian.Maureira-Fredes at qt.io> wrote: Hello Serge, After executing your script, I get the following output: https://pastebin.com/2L3VYR0n I do get the output from `selectionchange` and `highlighted`, is this not the desire behavior? Cheers ________________________________________ From: PySide on behalf of Serge K. Sent: 09 April 2018 22:46:32 To: pyside at qt-project.org Subject: [PySide] QCombobox : Signal not emitted Hi Everyone, After setting a custom model on QCombobox, I do not receive anymore currentIndexChanged signal from my QCombobox (look below as an example) Did I do something wrong? from PySide2.QtCore import * from PySide2.QtGui import * from PySide2.QtWidgets import * class CustomModel(QAbstractListModel): """ Protocol model """ def __init__(self, *args, **kwargs): super(CustomModel, self).__init__(*args, **kwargs) self._protocol_list = [] def add_protocol(self, data, row=0): if not row: row = len(self._protocol_list) self.beginInsertRows(QModelIndex(), row, row) self._protocol_list.insert(row, data) self.endInsertRows() return self.index(len(self._protocol_list) - 1) def remove_protocol(self, item): for row, data in enumerate(self._protocol_list): if data.name.lower() == item.name.lower(): self.beginRemoveRows(QModelIndex(), row, row) self._protocol_list.pop(row) self.endRemoveRows() def rowCount(self, parent=QModelIndex()): if parent.isValid(): return 0 return len(self._protocol_list) def insertRows(self, row, count, index=QModelIndex()): self.beginInsertRows(QModelIndex(), row, row + count - 1) for j in range(row, row + count): self._protocol_list.insert(j, None) self.endInsertRows() return True def removeRows(self, row, count, index=QModelIndex()): self.beginRemoveRows(QModelIndex(), row, row + count - 1) for j in range(row, row + count)[::-1]: self._protocol_list.pop(j) self.endRemoveRows() return True def headerData(self, section, orientation, role=Qt.EditRole): return None def data(self, index, role=Qt.DisplayRole): if not index.isValid(): return None current_protocol = self._protocol_list[index.row()] if role == Qt.DisplayRole or role == Qt.EditRole: return current_protocol[0] return None def setData(self, index, value, role=Qt.EditRole): if role != Qt.EditRole: return True if index.isValid() and 0 <= index.row() < len(self._protocol_list): current_protocol = self._protocol_list[index.row()] if index.column() == 0: current_protocol[0] = value self.dataChanged.emit(index, index) return True return False def flags(self, index): if index.isValid(): return Qt.ItemFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable) return QAbstractListModel.flags(index) class combodemo(QWidget): def __init__(self, parent=None): super(combodemo, self).__init__(parent) layout = QHBoxLayout() self.cb = QComboBox() self.model = CustomModel() self.cb.setModel(self.model) self.cb.setModelColumn(0) self.model.add_protocol(("c", "A")) self.model.add_protocol(("c++", "B")) self.model.add_protocol(("Java", "C")) self.model.add_protocol(("C#", "D")) self.model.add_protocol(("Python", "E")) self.cb.currentIndexChanged.connect(self.selectionchange) self.cb.highlighted.connect(self.highlighted) layout.addWidget(self.cb) self.setLayout(layout) self.setWindowTitle("combo box demo") def highlighted(self, i): print("Highlighted: ", i) def selectionchange(self, i): print("Items in the list are :") for count in range(self.cb.count()): print(self.cb.itemText(count)) print("Current index", i, "selection changed ", self.cb.currentText()) def main(): app = QApplication(sys.argv) ex = combodemo() ex.show() sys.exit(app.exec_()) if __name__ == '__main__': main() -------------- next part -------------- An HTML attachment was scrubbed... URL: From Cristian.Maureira-Fredes at qt.io Tue Apr 10 16:33:17 2018 From: Cristian.Maureira-Fredes at qt.io (=?iso-8859-1?Q?Cristi=E1n_Maureira-Fredes?=) Date: Tue, 10 Apr 2018 14:33:17 +0000 Subject: [PySide] QCombobox : Signal not emitted In-Reply-To: References: , Message-ID: Hello Serge, I was using my keyboard to navigate the QComboBox options, because hovering the options with the mouse just call the highlighted slot. If you want to do something on highlighted, you can add for example the following: def highlighted(self, i): print("Highlighted: ", i) self.cb.setCurrentIndex(i) In that way, when you move the mouse over the options, the currentIndexChanged signal will be emitted. I don't know if you want a special behavior on this actions, but remember to play around with mouseEvents if you want to add clicking behavior. I'm Running Linux, Python 3.6.4 + PySide2 5.9 Cheers ________________________________________ From: Serge K. Sent: 10 April 2018 16:11:19 To: Cristián Maureira-Fredes Cc: pyside at qt-project.org Subject: Re: [PySide] QCombobox : Signal not emitted Thanks Cristian, This is the desired behavior but I do not get this result... That is really weird... Can you tell me what is your environment? Me : windows 10 + anaconda python 3.6.4 + pyside2==5.9.0a1 On Apr 10, 2018 3:09 AM, "Cristián Maureira-Fredes" > wrote: Hello Serge, After executing your script, I get the following output: https://pastebin.com/2L3VYR0n I do get the output from `selectionchange` and `highlighted`, is this not the desire behavior? Cheers ________________________________________ From: PySide > on behalf of Serge K. > Sent: 09 April 2018 22:46:32 To: pyside at qt-project.org Subject: [PySide] QCombobox : Signal not emitted Hi Everyone, After setting a custom model on QCombobox, I do not receive anymore currentIndexChanged signal from my QCombobox (look below as an example) Did I do something wrong? from PySide2.QtCore import * from PySide2.QtGui import * from PySide2.QtWidgets import * class CustomModel(QAbstractListModel): """ Protocol model """ def __init__(self, *args, **kwargs): super(CustomModel, self).__init__(*args, **kwargs) self._protocol_list = [] def add_protocol(self, data, row=0): if not row: row = len(self._protocol_list) self.beginInsertRows(QModelIndex(), row, row) self._protocol_list.insert(row, data) self.endInsertRows() return self.index(len(self._protocol_list) - 1) def remove_protocol(self, item): for row, data in enumerate(self._protocol_list): if data.name.lower() == item.name.lower(): self.beginRemoveRows(QModelIndex(), row, row) self._protocol_list.pop(row) self.endRemoveRows() def rowCount(self, parent=QModelIndex()): if parent.isValid(): return 0 return len(self._protocol_list) def insertRows(self, row, count, index=QModelIndex()): self.beginInsertRows(QModelIndex(), row, row + count - 1) for j in range(row, row + count): self._protocol_list.insert(j, None) self.endInsertRows() return True def removeRows(self, row, count, index=QModelIndex()): self.beginRemoveRows(QModelIndex(), row, row + count - 1) for j in range(row, row + count)[::-1]: self._protocol_list.pop(j) self.endRemoveRows() return True def headerData(self, section, orientation, role=Qt.EditRole): return None def data(self, index, role=Qt.DisplayRole): if not index.isValid(): return None current_protocol = self._protocol_list[index.row()] if role == Qt.DisplayRole or role == Qt.EditRole: return current_protocol[0] return None def setData(self, index, value, role=Qt.EditRole): if role != Qt.EditRole: return True if index.isValid() and 0 <= index.row() < len(self._protocol_list): current_protocol = self._protocol_list[index.row()] if index.column() == 0: current_protocol[0] = value self.dataChanged.emit(index, index) return True return False def flags(self, index): if index.isValid(): return Qt.ItemFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable) return QAbstractListModel.flags(index) class combodemo(QWidget): def __init__(self, parent=None): super(combodemo, self).__init__(parent) layout = QHBoxLayout() self.cb = QComboBox() self.model = CustomModel() self.cb.setModel(self.model) self.cb.setModelColumn(0) self.model.add_protocol(("c", "A")) self.model.add_protocol(("c++", "B")) self.model.add_protocol(("Java", "C")) self.model.add_protocol(("C#", "D")) self.model.add_protocol(("Python", "E")) self.cb.currentIndexChanged.connect(self.selectionchange) self.cb.highlighted.connect(self.highlighted) layout.addWidget(self.cb) self.setLayout(layout) self.setWindowTitle("combo box demo") def highlighted(self, i): print("Highlighted: ", i) def selectionchange(self, i): print("Items in the list are :") for count in range(self.cb.count()): print(self.cb.itemText(count)) print("Current index", i, "selection changed ", self.cb.currentText()) def main(): app = QApplication(sys.argv) ex = combodemo() ex.show() sys.exit(app.exec_()) if __name__ == '__main__': main() From skab12 at gmail.com Tue Apr 10 17:23:15 2018 From: skab12 at gmail.com (Serge K.) Date: Tue, 10 Apr 2018 11:23:15 -0400 Subject: [PySide] QCombobox : Signal not emitted In-Reply-To: References: Message-ID: Ok, I see. Thank you really much for this information. Indeed, I want to add the clicking behavior for selecting an option. Highlighted was a quick test to see if it was working. I am surprised that keyboard events are implemented and not mouseEvents. If I add an eventFilter to my QCombobox for catching MouseButtonRelease event, how can I get the clicked option? Or Do you have an easier way to do that Cristian? self.cb.view().installEventFilter(self) self.cb.view().viewport().installEventFilter(self) def eventFilter(self, widget, event): if event.type() == QEvent.MouseButtonRelease: print("--eventFilter() mouse_clicked on " + str(widget.objectName())) my_idx = self.cb.setCurrentIndex(my_idx) return False return False On Tue, Apr 10, 2018 at 10:33 AM, Cristián Maureira-Fredes < Cristian.Maureira-Fredes at qt.io> wrote: > Hello Serge, > > I was using my keyboard to navigate the QComboBox options, > because hovering the options with the mouse just call the > highlighted slot. > > If you want to do something on highlighted, you can add for example the > following: > > def highlighted(self, i): > print("Highlighted: ", i) > self.cb.setCurrentIndex(i) > > In that way, when you move the mouse over the options, > the currentIndexChanged signal will be emitted. > > I don't know if you want a special behavior on this actions, > but remember to play around with mouseEvents if you want > to add clicking behavior. > > I'm Running Linux, Python 3.6.4 + PySide2 5.9 > > Cheers > > ________________________________________ > From: Serge K. > Sent: 10 April 2018 16:11:19 > To: Cristián Maureira-Fredes > Cc: pyside at qt-project.org > Subject: Re: [PySide] QCombobox : Signal not emitted > > Thanks Cristian, > > This is the desired behavior but I do not get this result... That is > really weird... Can you tell me what is your environment? > > Me : windows 10 + anaconda python 3.6.4 + pyside2==5.9.0a1 > > > On Apr 10, 2018 3:09 AM, "Cristián Maureira-Fredes" < > Cristian.Maureira-Fredes at qt.io> > wrote: > Hello Serge, > > After executing your script, I get the following output: > https://pastebin.com/2L3VYR0n > I do get the output from `selectionchange` and `highlighted`, > is this not the desire behavior? > > Cheers > > ________________________________________ > From: PySide > on behalf of Serge K. > > Sent: 09 April 2018 22:46:32 > To: pyside at qt-project.org > Subject: [PySide] QCombobox : Signal not emitted > > > Hi Everyone, > > After setting a custom model on QCombobox, I do not receive anymore > currentIndexChanged signal from my QCombobox (look below as an example) Did > I do something wrong? > > > from PySide2.QtCore import * > from PySide2.QtGui import * > from PySide2.QtWidgets import * > > > class CustomModel(QAbstractListModel): > """ Protocol model """ > > def __init__(self, *args, **kwargs): > super(CustomModel, self).__init__(*args, **kwargs) > > self._protocol_list = [] > > def add_protocol(self, data, row=0): > if not row: > row = len(self._protocol_list) > > self.beginInsertRows(QModelIndex(), row, row) > self._protocol_list.insert(row, data) > self.endInsertRows() > return self.index(len(self._protocol_list) - 1) > > def remove_protocol(self, item): > for row, data in enumerate(self._protocol_list): > if data.name.lower() == item.name.lower(): > self.beginRemoveRows(QModelIndex(), row, row) > self._protocol_list.pop(row) > self.endRemoveRows() > > def rowCount(self, parent=QModelIndex()): > if parent.isValid(): > return 0 > return len(self._protocol_list) > > > def insertRows(self, row, count, index=QModelIndex()): > self.beginInsertRows(QModelIndex(), row, row + count - 1) > > for j in range(row, row + count): > self._protocol_list.insert(j, None) > > self.endInsertRows() > return True > > def removeRows(self, row, count, index=QModelIndex()): > self.beginRemoveRows(QModelIndex(), row, row + count - 1) > > for j in range(row, row + count)[::-1]: > self._protocol_list.pop(j) > > self.endRemoveRows() > return True > > def headerData(self, section, orientation, role=Qt.EditRole): > return None > > def data(self, index, role=Qt.DisplayRole): > if not index.isValid(): > return None > > current_protocol = self._protocol_list[index.row()] > > if role == Qt.DisplayRole or role == Qt.EditRole: > return current_protocol[0] > > return None > > def setData(self, index, value, role=Qt.EditRole): > if role != Qt.EditRole: > return True > > if index.isValid() and 0 <= index.row() < len(self._protocol_list): > current_protocol = self._protocol_list[index.row()] > if index.column() == 0: > current_protocol[0] = value > > self.dataChanged.emit(index, index) > return True > > return False > > def flags(self, index): > if index.isValid(): > return Qt.ItemFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable) > return QAbstractListModel.flags(index) > > > class combodemo(QWidget): > def __init__(self, parent=None): > super(combodemo, self).__init__(parent) > > layout = QHBoxLayout() > self.cb = QComboBox() > self.model = CustomModel() > self.cb.setModel(self.model) > self.cb.setModelColumn(0) > self.model.add_protocol(("c", "A")) > self.model.add_protocol(("c++", "B")) > self.model.add_protocol(("Java", "C")) > self.model.add_protocol(("C#", "D")) > self.model.add_protocol(("Python", "E")) > > self.cb.currentIndexChanged.connect(self.selectionchange) > self.cb.highlighted.connect(self.highlighted) > > layout.addWidget(self.cb) > self.setLayout(layout) > self.setWindowTitle("combo box demo") > > def highlighted(self, i): > print("Highlighted: ", i) > > def selectionchange(self, i): > print("Items in the list are :") > > for count in range(self.cb.count()): > print(self.cb.itemText(count)) > print("Current index", i, "selection changed ", > self.cb.currentText()) > > > > def main(): > app = QApplication(sys.argv) > ex = combodemo() > ex.show() > sys.exit(app.exec_()) > > > if __name__ == '__main__': > main() > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From skab12 at gmail.com Tue Apr 10 17:57:53 2018 From: skab12 at gmail.com (Serge K.) Date: Tue, 10 Apr 2018 11:57:53 -0400 Subject: [PySide] QCombobox : Signal not emitted In-Reply-To: References: Message-ID: Ok, I found it! Thank you really much Cristian! here the code (quite ugly :-)) for handling the click: self.cb.view().installEventFilter(self) self.cb.view().viewport().installEventFilter(self) def eventFilter(self, widget, event): if event.type() == QEvent.MouseButtonRelease: # and isinstance(widget, QComboBox): print("--eventFilter() mouse_clicked on " + str(widget.objectName())) print(widget.parent().parent().parent().view().currentIndex()) current_idx = self.cb.view().currentIndex().row() self.cb.setCurrentIndex(current_idx) self.cb.activated.emit(current_idx) self.cb.hidePopup() return False return super(combodemo, self).eventFilter(widget, event) Serge K. On Tue, Apr 10, 2018 at 11:23 AM, Serge K. wrote: > Ok, I see. Thank you really much for this information. > > Indeed, I want to add the clicking behavior for selecting an option. > Highlighted was a quick test to see if it was working. I am surprised that > keyboard events are implemented and not mouseEvents. > > If I add an eventFilter to my QCombobox for catching MouseButtonRelease > event, how can I get the clicked option? Or Do you have an easier way to do > that Cristian? > > self.cb.view().installEventFilter(self) > self.cb.view().viewport().installEventFilter(self) > > def eventFilter(self, widget, event): > if event.type() == QEvent.MouseButtonRelease: > print("--eventFilter() mouse_clicked on " + str(widget.objectName())) > my_idx = > self.cb.setCurrentIndex(my_idx) > return False > return False > > > > > On Tue, Apr 10, 2018 at 10:33 AM, Cristián Maureira-Fredes < > Cristian.Maureira-Fredes at qt.io> wrote: > >> Hello Serge, >> >> I was using my keyboard to navigate the QComboBox options, >> because hovering the options with the mouse just call the >> highlighted slot. >> >> If you want to do something on highlighted, you can add for example the >> following: >> >> def highlighted(self, i): >> print("Highlighted: ", i) >> self.cb.setCurrentIndex(i) >> >> In that way, when you move the mouse over the options, >> the currentIndexChanged signal will be emitted. >> >> I don't know if you want a special behavior on this actions, >> but remember to play around with mouseEvents if you want >> to add clicking behavior. >> >> I'm Running Linux, Python 3.6.4 + PySide2 5.9 >> >> Cheers >> >> ________________________________________ >> From: Serge K. >> Sent: 10 April 2018 16:11:19 >> To: Cristián Maureira-Fredes >> Cc: pyside at qt-project.org >> Subject: Re: [PySide] QCombobox : Signal not emitted >> >> Thanks Cristian, >> >> This is the desired behavior but I do not get this result... That is >> really weird... Can you tell me what is your environment? >> >> Me : windows 10 + anaconda python 3.6.4 + pyside2==5.9.0a1 >> >> >> On Apr 10, 2018 3:09 AM, "Cristián Maureira-Fredes" < >> Cristian.Maureira-Fredes at qt.io> >> wrote: >> Hello Serge, >> >> After executing your script, I get the following output: >> https://pastebin.com/2L3VYR0n >> I do get the output from `selectionchange` and `highlighted`, >> is this not the desire behavior? >> >> Cheers >> >> ________________________________________ >> From: PySide > org> on behalf of Serge K. > > >> Sent: 09 April 2018 22:46:32 >> To: pyside at qt-project.org >> Subject: [PySide] QCombobox : Signal not emitted >> >> >> Hi Everyone, >> >> After setting a custom model on QCombobox, I do not receive anymore >> currentIndexChanged signal from my QCombobox (look below as an example) Did >> I do something wrong? >> >> >> from PySide2.QtCore import * >> from PySide2.QtGui import * >> from PySide2.QtWidgets import * >> >> >> class CustomModel(QAbstractListModel): >> """ Protocol model """ >> >> def __init__(self, *args, **kwargs): >> super(CustomModel, self).__init__(*args, **kwargs) >> >> self._protocol_list = [] >> >> def add_protocol(self, data, row=0): >> if not row: >> row = len(self._protocol_list) >> >> self.beginInsertRows(QModelIndex(), row, row) >> self._protocol_list.insert(row, data) >> self.endInsertRows() >> return self.index(len(self._protocol_list) - 1) >> >> def remove_protocol(self, item): >> for row, data in enumerate(self._protocol_list): >> if data.name.lower() == item.name.lower(): >> self.beginRemoveRows(QModelIndex(), row, row) >> self._protocol_list.pop(row) >> self.endRemoveRows() >> >> def rowCount(self, parent=QModelIndex()): >> if parent.isValid(): >> return 0 >> return len(self._protocol_list) >> >> >> def insertRows(self, row, count, index=QModelIndex()): >> self.beginInsertRows(QModelIndex(), row, row + count - 1) >> >> for j in range(row, row + count): >> self._protocol_list.insert(j, None) >> >> self.endInsertRows() >> return True >> >> def removeRows(self, row, count, index=QModelIndex()): >> self.beginRemoveRows(QModelIndex(), row, row + count - 1) >> >> for j in range(row, row + count)[::-1]: >> self._protocol_list.pop(j) >> >> self.endRemoveRows() >> return True >> >> def headerData(self, section, orientation, role=Qt.EditRole): >> return None >> >> def data(self, index, role=Qt.DisplayRole): >> if not index.isValid(): >> return None >> >> current_protocol = self._protocol_list[index.row()] >> >> if role == Qt.DisplayRole or role == Qt.EditRole: >> return current_protocol[0] >> >> return None >> >> def setData(self, index, value, role=Qt.EditRole): >> if role != Qt.EditRole: >> return True >> >> if index.isValid() and 0 <= index.row() < >> len(self._protocol_list): >> current_protocol = self._protocol_list[index.row()] >> if index.column() == 0: >> current_protocol[0] = value >> >> self.dataChanged.emit(index, index) >> return True >> >> return False >> >> def flags(self, index): >> if index.isValid(): >> return Qt.ItemFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable) >> return QAbstractListModel.flags(index) >> >> >> class combodemo(QWidget): >> def __init__(self, parent=None): >> super(combodemo, self).__init__(parent) >> >> layout = QHBoxLayout() >> self.cb = QComboBox() >> self.model = CustomModel() >> self.cb.setModel(self.model) >> self.cb.setModelColumn(0) >> self.model.add_protocol(("c", "A")) >> self.model.add_protocol(("c++", "B")) >> self.model.add_protocol(("Java", "C")) >> self.model.add_protocol(("C#", "D")) >> self.model.add_protocol(("Python", "E")) >> >> self.cb.currentIndexChanged.connect(self.selectionchange) >> self.cb.highlighted.connect(self.highlighted) >> >> layout.addWidget(self.cb) >> self.setLayout(layout) >> self.setWindowTitle("combo box demo") >> >> def highlighted(self, i): >> print("Highlighted: ", i) >> >> def selectionchange(self, i): >> print("Items in the list are :") >> >> for count in range(self.cb.count()): >> print(self.cb.itemText(count)) >> print("Current index", i, "selection changed ", >> self.cb.currentText()) >> >> >> >> def main(): >> app = QApplication(sys.argv) >> ex = combodemo() >> ex.show() >> sys.exit(app.exec_()) >> >> >> if __name__ == '__main__': >> main() >> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From Cristian.Maureira-Fredes at qt.io Wed Apr 11 09:23:24 2018 From: Cristian.Maureira-Fredes at qt.io (=?iso-8859-1?Q?Cristi=E1n_Maureira-Fredes?=) Date: Wed, 11 Apr 2018 07:23:24 +0000 Subject: [PySide] QCombobox : Signal not emitted In-Reply-To: References: , Message-ID: Hello Serge, I'm glad you solved your issue, for more dynamical conversations I recommend you to join our IRC channel in Freenode #qt-pyside If you don't like IRC, you can join through Gitter using the old/deprecated PySide repository, and last but not least, we have a lonely keybase team you can also join: Here you can find the links: https://wiki.qt.io/PySide2#Community Cheers! ________________________________________ From: Serge K. Sent: 10 April 2018 17:57:53 To: Cristián Maureira-Fredes Cc: pyside at qt-project.org Subject: Re: [PySide] QCombobox : Signal not emitted Ok, I found it! Thank you really much Cristian! here the code (quite ugly :-)) for handling the click: self.cb.view().installEventFilter(self) self.cb.view().viewport().installEventFilter(self) def eventFilter(self, widget, event): if event.type() == QEvent.MouseButtonRelease: # and isinstance(widget, QComboBox): print("--eventFilter() mouse_clicked on " + str(widget.objectName())) print(widget.parent().parent().parent().view().currentIndex()) current_idx = self.cb.view().currentIndex().row() self.cb.setCurrentIndex(current_idx) self.cb.activated.emit(current_idx) self.cb.hidePopup() return False return super(combodemo, self).eventFilter(widget, event) Serge K. On Tue, Apr 10, 2018 at 11:23 AM, Serge K. > wrote: Ok, I see. Thank you really much for this information. Indeed, I want to add the clicking behavior for selecting an option. Highlighted was a quick test to see if it was working. I am surprised that keyboard events are implemented and not mouseEvents. If I add an eventFilter to my QCombobox for catching MouseButtonRelease event, how can I get the clicked option? Or Do you have an easier way to do that Cristian? self.cb.view().installEventFilter(self) self.cb.view().viewport().installEventFilter(self) def eventFilter(self, widget, event): if event.type() == QEvent.MouseButtonRelease: print("--eventFilter() mouse_clicked on " + str(widget.objectName())) my_idx = self.cb.setCurrentIndex(my_idx) return False return False On Tue, Apr 10, 2018 at 10:33 AM, Cristián Maureira-Fredes > wrote: Hello Serge, I was using my keyboard to navigate the QComboBox options, because hovering the options with the mouse just call the highlighted slot. If you want to do something on highlighted, you can add for example the following: def highlighted(self, i): print("Highlighted: ", i) self.cb.setCurrentIndex(i) In that way, when you move the mouse over the options, the currentIndexChanged signal will be emitted. I don't know if you want a special behavior on this actions, but remember to play around with mouseEvents if you want to add clicking behavior. I'm Running Linux, Python 3.6.4 + PySide2 5.9 Cheers ________________________________________ From: Serge K. > Sent: 10 April 2018 16:11:19 To: Cristián Maureira-Fredes Cc: pyside at qt-project.org Subject: Re: [PySide] QCombobox : Signal not emitted Thanks Cristian, This is the desired behavior but I do not get this result... That is really weird... Can you tell me what is your environment? Me : windows 10 + anaconda python 3.6.4 + pyside2==5.9.0a1 On Apr 10, 2018 3:09 AM, "Cristián Maureira-Fredes" >> wrote: Hello Serge, After executing your script, I get the following output: https://pastebin.com/2L3VYR0n I do get the output from `selectionchange` and `highlighted`, is this not the desire behavior? Cheers ________________________________________ From: PySide >> on behalf of Serge K. >> Sent: 09 April 2018 22:46:32 To: pyside at qt-project.org> Subject: [PySide] QCombobox : Signal not emitted Hi Everyone, After setting a custom model on QCombobox, I do not receive anymore currentIndexChanged signal from my QCombobox (look below as an example) Did I do something wrong? from PySide2.QtCore import * from PySide2.QtGui import * from PySide2.QtWidgets import * class CustomModel(QAbstractListModel): """ Protocol model """ def __init__(self, *args, **kwargs): super(CustomModel, self).__init__(*args, **kwargs) self._protocol_list = [] def add_protocol(self, data, row=0): if not row: row = len(self._protocol_list) self.beginInsertRows(QModelIndex(), row, row) self._protocol_list.insert(row, data) self.endInsertRows() return self.index(len(self._protocol_list) - 1) def remove_protocol(self, item): for row, data in enumerate(self._protocol_list): if data.name.lower() == item.name.lower(): self.beginRemoveRows(QModelIndex(), row, row) self._protocol_list.pop(row) self.endRemoveRows() def rowCount(self, parent=QModelIndex()): if parent.isValid(): return 0 return len(self._protocol_list) def insertRows(self, row, count, index=QModelIndex()): self.beginInsertRows(QModelIndex(), row, row + count - 1) for j in range(row, row + count): self._protocol_list.insert(j, None) self.endInsertRows() return True def removeRows(self, row, count, index=QModelIndex()): self.beginRemoveRows(QModelIndex(), row, row + count - 1) for j in range(row, row + count)[::-1]: self._protocol_list.pop(j) self.endRemoveRows() return True def headerData(self, section, orientation, role=Qt.EditRole): return None def data(self, index, role=Qt.DisplayRole): if not index.isValid(): return None current_protocol = self._protocol_list[index.row()] if role == Qt.DisplayRole or role == Qt.EditRole: return current_protocol[0] return None def setData(self, index, value, role=Qt.EditRole): if role != Qt.EditRole: return True if index.isValid() and 0 <= index.row() < len(self._protocol_list): current_protocol = self._protocol_list[index.row()] if index.column() == 0: current_protocol[0] = value self.dataChanged.emit(index, index) return True return False def flags(self, index): if index.isValid(): return Qt.ItemFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable) return QAbstractListModel.flags(index) class combodemo(QWidget): def __init__(self, parent=None): super(combodemo, self).__init__(parent) layout = QHBoxLayout() self.cb = QComboBox() self.model = CustomModel() self.cb.setModel(self.model) self.cb.setModelColumn(0) self.model.add_protocol(("c", "A")) self.model.add_protocol(("c++", "B")) self.model.add_protocol(("Java", "C")) self.model.add_protocol(("C#", "D")) self.model.add_protocol(("Python", "E")) self.cb.currentIndexChanged.connect(self.selectionchange) self.cb.highlighted.connect(self.highlighted) layout.addWidget(self.cb) self.setLayout(layout) self.setWindowTitle("combo box demo") def highlighted(self, i): print("Highlighted: ", i) def selectionchange(self, i): print("Items in the list are :") for count in range(self.cb.count()): print(self.cb.itemText(count)) print("Current index", i, "selection changed ", self.cb.currentText()) def main(): app = QApplication(sys.argv) ex = combodemo() ex.show() sys.exit(app.exec_()) if __name__ == '__main__': main() From Cristian.Maureira-Fredes at qt.io Fri Apr 13 10:38:57 2018 From: Cristian.Maureira-Fredes at qt.io (=?iso-8859-1?Q?Cristi=E1n_Maureira-Fredes?=) Date: Fri, 13 Apr 2018 08:38:57 +0000 Subject: [PySide] Weekly update 12.04.2018 Message-ID: Hello, An update of yesterday's meeting: - There is effort on completing the getting started section of our documentation, since it is a important part for newcomers. - The issues with the integration system (COIN) are being mitigated, and the fixes will be merge soon. The reason behind this disruption was mainly related to the pip update, related to the pypi major upgrade in the last couple of weeks. - We are trying to include on the Qt for Python documentation a few docs related to Shiboken. The idea behind this is to help people understand what is happening under the hood regarding the binding generation process. There will be also a Licenses page on the official documentation website. - There will be a couple of patches that aim to clean the main repository in the next couple of days, to have only up-to-date files for the TP. - There has been a lot of effort on providing a complete example to show Qt's features in action through Qt for Python. The example is a tabbed browser, that will be available on the "examples" directory . - We are already working on a few issues related to QtWebEngine, which affect different installation configurations, because a qt.conf file is needed to be placed on the app deployment to override certain paths that could be not properly configured. - There has been new suggestions for future Qt for Python blog posts, so we are working on a few more ideas. - One of the major upgrades to the project will be the integration of heap types for the CPython implementation, this was a requirement to provide a Stable ABI (PEP-384). Hopefully this will be integrated in the next couple of weeks. - Many bugs were addressed but due to the the CI issues, we have been unable to merge them to our branches. As soon as COIN is up and running for Qt for Python, we will proceed to do it. Please check first if there are patches on Gerrit awaiting to be merge before submit yours. - Last but no least, there has been a lot of discussion regarding the official release date for the Technical Preview. The latest information on this is that the team will wait for the official Qt 5.11 release (scheduled for 31.05.2018) and proceed to evaluate the compatibility and proper behavior of the project. We are aiming to release Qt for Python mid June 2018. Cheers! ----- Cristián Maureira-Fredes Software Engineer The Qt Company GmbH Rudower Chaussee 13 D-12489 Berlin Geschäftsführer: Mika Pälsi, Juha Varelius, Mika Harjuaho Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B From Cristian.Maureira-Fredes at qt.io Thu Apr 19 16:17:43 2018 From: Cristian.Maureira-Fredes at qt.io (=?iso-8859-1?Q?Cristi=E1n_Maureira-Fredes?=) Date: Thu, 19 Apr 2018 14:17:43 +0000 Subject: [PySide] Weekly update 19.04.2018 Message-ID: Hello, here is an update of the project's development: Our CI system (COIN) is up and running again, so the team is working on merging all the patches from the last weeks. The documentation generation process is being improved, since not all the elements were properly generated. Additionally, there has been some testing on using Qt Assistant to show the documentation. We are planning to include also information related to the ApiExtractor and Shiboken. Hopefully we can integrate this patches soon, so the documentation can be available online. The WebEngine issues from the current generated wheels are being addressed, and hopefully they will be solved soon. Additionally, the patches to include QtWebEngineCore are being reviewed. The Heap types implementation was completed, and now the integration with the changes related to PEP-384 is being developed. There has been some work related to the installation process for standalone builds on Windows, and also the scriptableapplication example has a few issues that are still being studied. Our new example, a tabbed browser, is being constantly improved and we hope to have a final version soon. The wiki was reorganized, so now everything that is updated (pages, references, etc) was renamed to Qt for Python. Also, the category QtForPython was created, so please use it if you want to contribute with new pages: https://wiki.qt.io/Qt_for_Python#Contributing_to_the_Qt_for_Python_Wiki A tutorials wiki page was included, mainly porting old examples and comments, Suggestions and contributions are more than welcome! We are working on a couple more blog posts, so stay tuned! https://blog.qt.io/ Cheers! ----- Cristián Maureira-Fredes Software Engineer The Qt Company GmbH Rudower Chaussee 13 D-12489 Berlin Geschäftsführer: Mika Pälsi, Juha Varelius, Mika Harjuaho Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B From dannybouthot at gmail.com Thu Apr 19 20:40:12 2018 From: dannybouthot at gmail.com (Danny Bouthot) Date: Thu, 19 Apr 2018 14:40:12 -0400 Subject: [PySide] Wheel for x86 Message-ID: Hello, I tried to install PySide 2 through "pip", but got the message: Could not find a version that satisfies the requirement pyside2 (from versions: ) No matching distribution found for pyside2 Would it be possible to build the x86 wheel? Thanks -- *Danny Bouthot* -------------- next part -------------- An HTML attachment was scrubbed... URL: From renaudtalon at fusefx.com Thu Apr 19 21:15:31 2018 From: renaudtalon at fusefx.com (Renaud Talon) Date: Thu, 19 Apr 2018 19:15:31 +0000 Subject: [PySide] Wheel for x86 In-Reply-To: References: Message-ID: Hi Danny, As far as I know, the wheels are not available through “pip” yet since PySide2 isn’t officially released yet. You can however download the work in progress wheels here (including nightly builds): http://download.qt.io/snapshots/ci/pyside/ to install a wheel just use: pip install PySide2-5.9.0a1-5.9.6-cp34-cp34m-linux_x86_64.whl (pip install PATHTOYOURWHEEL) You should also be able to use a URL that points to the wheel file online if you prefer. I hope this helps, Renaud _______________________________________________ Renaud Talon Pipeline / TD FuseFX 14823 Califa Street Los Angeles, CA 91411 Office: 818-237-5052 Mobile: 310-430-8834 www.FuseFX.com From: PySide On Behalf Of Danny Bouthot Sent: Thursday, April 19, 2018 11:40 AM To: pyside at qt-project.org Subject: [PySide] Wheel for x86 Hello, I tried to install PySide 2 through "pip", but got the message: Could not find a version that satisfies the requirement pyside2 (from versions: ) No matching distribution found for pyside2 Would it be possible to build the x86 wheel? Thanks -- Danny Bouthot -------------- next part -------------- An HTML attachment was scrubbed... URL: From Cristian.Maureira-Fredes at qt.io Thu Apr 19 22:58:54 2018 From: Cristian.Maureira-Fredes at qt.io (=?iso-8859-1?Q?Cristi=E1n_Maureira-Fredes?=) Date: Thu, 19 Apr 2018 20:58:54 +0000 Subject: [PySide] Wheel for x86 In-Reply-To: References: Message-ID: Dear Danny, At the moment we don't have wheels for 32bit systems (x86), hopefully we will manage to provide them for the release, and in that case they will be available just for Windows. Cheers ________________________________________ From: PySide on behalf of Danny Bouthot Sent: 19 April 2018 20:40:12 To: pyside at qt-project.org Subject: [PySide] Wheel for x86 Hello, I tried to install PySide 2 through "pip", but got the message: Could not find a version that satisfies the requirement pyside2 (from versions: ) No matching distribution found for pyside2 Would it be possible to build the x86 wheel? Thanks -- Danny Bouthot