2017-01-29 4 views
0

У меня есть это numpad, я хотел бы сделать каждую пронумерованную кнопку, чтобы написать ее соответствующее число на линии выше. Например, если я вхожу 1234, задавая на кнопках ту же последовательность, которая будет отображаться на линии. Я использую pyqt4 с qt-дизайнером. Строка выше - это QlineEdit, я импортирую файл .ui непосредственно в скрипт python, я не конвертирую его с помощью pyuic4. может ли кто-нибудь помочь мне найти решение? Я новичок в python, я начал 3 месяца назад. Спасибокак назначить ключ (QtCore.Qt.Key_1) кнопке на питоне. числовая панель

class MyWindow(QtGui.QMainWindow): 
    def __init__(self): 
     QtGui.QWidget.__init__(self) 
     file_path = os.path.abspath("ui/sales_window.ui") 
     uic.loadUi(file_path, self) 
+0

Измените свой вопрос и добавьте полный файл ui. – ekhumoro

+0

Я не могу загрузить его, у него есть 30000 + символов, и на этой странице есть ограничение на 30k. –

+0

Хорошо. Вместо этого вы можете использовать ссылку [pastebin] (http://pastebin.com/). – ekhumoro

ответ

0

Первым шагом является создание кнопочной группы для цифровой клавиатуры.

В Qt Designer нажмите одну из кнопок, затем нажмите Ctrl + щелкнуть по всем другим кнопкам на клавиатуре, чтобы они были выбраны (всего двенадцать кнопок). Теперь щелкните правой кнопкой мыши одну из кнопок и выберите Назначьте группе кнопок> Новая группа кнопок из меню. Затем сохраните файл ui.

Теперь вы можете добавить обработчик основного сценария для управления кнопками:

class MyWindow(QtGui.QMainWindow): 
    def __init__(self): 
     QtGui.QWidget.__init__(self) 
     file_path = os.path.abspath("aaa.ui") 
     uic.loadUi(file_path, self) 
     self.barcode_src_line.setReadOnly(True) 
     self.buttonGroup.buttonClicked.connect(self.handleButtons) 

    def handleButtons(self, button): 
     char = str(button.text()) 
     if char == 'C': 
      self.barcode_src_line.clear() 
     else: 
      text = str(self.barcode_src_line.text()) or '0' 
      if char != '.' or '.' not in text: 
       if text != '0' or char == '.': 
        text += char 
       else: 
        text = char 
       self.barcode_src_line.setText(text) 

Это будет работать как обычный калькулятор. Если вам нужно другое поведение, вы можете, конечно, переписать handleButtons любым удобным вам способом.

+0

1000 спасибо, если вы когда-нибудь пройдете мой город, я куплю вам напитки. код работает так, как мне нужно. я очень благодарен –

0

Вы должны взглянуть на Calculator Builder example в документации в Qt это объясняет, как вы можете справиться с Ui загружены файлы, когда вы не используете МСЖД на них.

Это на C++, но показывает основную технику.

+0

спасибо за ссылку, проблема в том, что я не знаю C++, я попытаюсь изучить вашу ссылку, но я бы оценил, если бы вы могли начать с примера в питон. и btw ссылка показывает калькулятор, мне не нужен калькулятор, который на клавиатуре вводит числовую строку. –