[PySide] Question from a newbie

Vojtěch Polášek krecoun at gmail.com
Tue Dec 24 11:30:31 CET 2013


Hi,
Thank you very much for your help, nice Christmas present from you.
I wanted to do that without subclassing anything, but now I see that I
will have to do that sometimes.
Thank you again and mery Christmas,
Vojta

Dne 24.12.2013 11:14, Aaron Richiger napsal(a):
> Hello Vojtech
>
> Impressive what you are able to do!!! I can't find my bugs with good
> eyes and have no idea how one would find them without seeing the code.
> I changed a few things in your file and hope, the resulting solution
> fits your needs:
>
> - fixed rowCount of your sudoku (was 10, now 9)
> - overwrote QPushButton and QSpinBox to store their index and to
> implement custom keyPressEvent behaviour
> - navigate using arrows, start editing by hitting enter or return.
> - change value of the spinbox using arrows, finish editing by hitting
> enter, continue navigating
>
> I hope this helps! If you have further questions, feel free to ask again!
>
> Merry Christmas! Aaron
>
>
>
>
>
> Am 22.12.2013 18:15, schrieb Vojtěch Polášek:
>> Greetings,
>> my name is Vojtěch Polášek and I am a blind student from czech Republic.
>> I am creating an application in Pyside with Python 3.2. I would like to
>> create a sudoku game accessible for blind and visually impaired people.
>> I have created a main window, added a widget which contains 81 buttons
>> in a grid layout. Now my idea is, that after pressing a button, that
>> button would disappear and would be replaced by some other controll
>> which would allow you to change the value. I chose QSpinBox for now.
>> This step works well, although I had to implement my own eventfilter,
>> because QT in Linux uses arrows to browse available elements on the
>> screen. Never mind.
>> Now this is the way in which I replace a button with a spinbox. This
>> function is connected to the QPushButton.clicked signal:
>>     def editValue(self):
>>         print ('editing')
>>         senderpos =
>> self.grid.getItemPosition(self.grid.indexOf(self.sender()))
>>         self.grid.addWidget(self.spinbox, senderpos[0], senderpos[1])
>>         print ('added')
>>         self.spinbox.setValue(int(self.sender().text()))
>>         print ('value set')
>>         self.spinbox.show()
>>         print('showed')
>>         self.spinbox.setFocus()
>>         print('focused')
>>         self.spinbox.editingFinished.connect(self.storeValue)
>>         print('connected')
>>
>> Don't mind those print statements, they are there for debugging
>> purposes, because I haven't found a way of debugging Pyside with PDB.
>> The problem is, that this signal is also called after I press a button
>> and this function is executed. I don't manipulate with spinbox in any
>> manner. Only thing that is set is its accepted range of input.
>> What could be the problem?
>> I am attaching the source code.
>> Thank you very much,
>> Vojtěch Polášek
>>
>>
>> _______________________________________________
>> PySide mailing list
>> PySide at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/pyside
>
>
>
> _______________________________________________
> PySide mailing list
> PySide at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/pyside

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20131224/289e8521/attachment.html>


More information about the PySide mailing list