[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] Using Qt5 widgets in an Embedded Python block
From: |
Barry Duggan |
Subject: |
Re: [Discuss-gnuradio] Using Qt5 widgets in an Embedded Python block |
Date: |
Wed, 25 Sep 2019 21:14:21 -0400 |
User-agent: |
Roundcube Webmail/1.3.8 |
After several more tutorials, lots of searching, an lots of
trial-and-error, I think I am getting closer to a solution. However, I
get the following error with my new code:
```
QWidget: Must construct a QApplication before a QWidget
```
If I declare a new QApplication, I don't know how to tie it to anything.
Here is my revised code:
```
# Embedded Python Block
import numpy as np
from gnuradio import gr
from gnuradio import qtgui
import sip
import sys
import signal
from PyQt5 import Qt
from PyQt5 import QtGui
from PyQt5.QtWidgets import (QWidget, QLineEdit, QPushButton,
QTextEdit, QGridLayout, QApplication)
d_buffer = ""
textboxValue = ""
class cons_in (gr.sync_block):
def __init__(self):
gr.sync_block.__init__(self,
name='Console Input', # will show up in GRC
in_sig=None,
out_sig=[np.byte])
self.initUI()
def initUI(self):
# create text display area
self.textarea = QTextEdit(QWidget=None)
self.textarea.setReadOnly(True)
# create input text area
self.textbox = QLineEdit(QWidget=None)
self.textbox.editingFinished.connect(self.onEnter)
self.textbox.setFocus()
grid = QGridLayout()
grid.setSpacing(10)
grid.addWidget(self.textarea, 0, 0, 5, 1)
grid.addWidget(self.textbox, 5, 0)
self.setLayout(grid)
self.show()
def onEnter(self):
global d_buffer
global textboxValue
textboxValue = self.textbox.text()
d_buffer += (textboxValue + "\n")
self.textarea.setText(d_buffer)
self.textbox.setText("")
def work(self, input_items, output_items):
global textboxValue
# <send textboxValue to output port>
_num_elem = len(textboxValue)
for x in range (_num_elem):
output_items[0][x] = textboxValue[x]
return (_num_elem)
```
A stand-alone version of the code works properly.
Any help is appreciated!
Thanks,
--
Barry Duggan
On Tue, 24 Sep 2019 20:15:41 -0400, Barry Duggan wrote:
Hi,
My flowgraph has an Embedded Python block feeding a Throttle feeding a
Text sink (https://github.com/dl1ksv/gr-display). In my Embedded Python
block I have a QLineEdit widget and a QTextEdit widget. The user input
is fed to the output port.
<snip>