Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 3, 2017 22:59:18

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Вывод переменной на виджет

Agriel
Спасибо, но у переменной a тип float на выходе, как вывести после запятой?
str(a)должна полностью преобразовать все число
  >>> a=1.2345
>>> a
1.2345
>>> str(a)
'1.2345'
>>>
Вначале вы создаете lbl2 пустым и ширина виджета равна одному символу. Поскольку вы не используете упаковщик виджетов, то вам придеться самому контролировать размер виджета. добавте после self.lbl2.setText…. self.lbl2.adjustSize() это подгонит размер виджета до длинны текста.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#2 Апрель 4, 2017 02:42:18

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Вывод переменной на виджет

Agriel
И может быть есть возможность сделать это красивее?
QLabel понимает HTML тэги
 #coding:utf-8
from PyQt4.QtGui import *
from PyQt4.QtCore import *
app = QApplication([])
l = QLabel()
l.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
l.setFont(QFont("times",32))
s ="<h2><i>"+u'Текст'+"</i></h2>"
s +="<font color=red>" + u'Еще текст'+ "</font><br>"
s += "<i><font color = blue>"+ u'И еще текст'+"</font></i>"
l.setText(s)
l.resize(300,200)
l.show()
app.exec_()

Офлайн

#3 Апрель 4, 2017 15:28:04

Agriel
Зарегистрирован: 2017-03-23
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод переменной на виджет

Спасибо всем, все работает. В коде выше были строки

 global a, b
df = pd.read_csv("D:\qwerty.csv")
x = df.iloc[:,:-1]
y = df.iloc[:,-1]
skm = lm.LinearRegression()
skm.fit(x, y)
a = skm.intercept_
b = skm.coef_

Возможно ли на виджете в меню сделать событие Open, в котором пользователь выбирает файл и он читается в переменную df ?

Отредактировано Agriel (Апрель 4, 2017 15:33:52)

Офлайн

#4 Апрель 4, 2017 16:19:45

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Вывод переменной на виджет

Agriel
Возможно ли на виджете в меню сделать событие Open, в котором пользователь выбирает файл и он читается в переменную df ?
QFileDialog.getOpenFilename

Офлайн

#5 Апрель 4, 2017 18:01:35

Agriel
Зарегистрирован: 2017-03-23
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод переменной на виджет

vic57
я это нашел, у меня вопрос как обработать это с pandas?

Офлайн

#6 Апрель 4, 2017 19:52:50

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Вывод переменной на виджет

filename = QtGui.QFileDialog.getOpenFileName()
после нажатия ф диалоге “Открыть” в переменной filename будект строка с путем к файлу, а дальше скармилвайте строку куда хотите.

Agriel
у меня вопрос как обработать это с pandas?
чет мне кажеться что вы забегаете вперд себя



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#7 Апрель 4, 2017 20:28:11

Agriel
Зарегистрирован: 2017-03-23
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод переменной на виджет

PEHDOM
filename = QtGui.QFileDialog.getOpenFileName()после нажатия ф диалоге “Открыть” в переменной filename будект строка с путем к файлу, а дальше скармилвайте строку куда хотите.
Спасибо, попробую. Просто начал изучение программирования сразу с задачи поставленной.

Офлайн

#8 Апрель 4, 2017 20:38:34

Agriel
Зарегистрирован: 2017-03-23
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод переменной на виджет

PEHDOM
filename = QtGui.QFileDialog.getOpenFileName()после нажатия ф диалоге “Открыть” в переменной filename будект строка с путем к файлу, а дальше скармилвайте строку куда хотите.
Делаю так:
import sys
import pandas as pd
import sklearn.linear_model as lm
from PyQt5.QtWidgets import QWidget, QLabel, QApplication, QPushButton, QFileDialog

global a, b

class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
lbl1 = QLabel('Полученное уравнение регрессии имеет вид:' ,self)
lbl1.move(15, 10)
self.lbl2 = QLabel(self)
self.lbl2.move(250, 10)
self.lbl3 = QLabel('Свободный член в модели:', self)
self.lbl3.move(15, 30)
self.lbl4 = QLabel(self)
self.lbl4.move(160, 30)
btn1 = QPushButton('Button 1', self)
btn1.move(100, 100)
btn1.clicked.connect(self.buttonClicked)
btn2 = QPushButton('Button 1', self)
btn2.move(200, 200)
btn2.clicked.connect(self.button2Clicked)
self.setGeometry(250, 250, 640, 480)
self.setWindowTitle('Cor')
#self.showDialog()
self.show()

def buttonClicked(self):
self.lbl2.setText('Y = ‘ + str(a) + ’ * X + ‘ + str(b))
self.lbl2.adjustSize()
self.lbl4.setText(’b = ‘ + str(b))
self.lbl4.adjustSize()

def button2Clicked(self):
fname = QFileDialog.getOpenFileName(self, ’Open file', ‘/Users/Антон’)
if fname:
df = pd.read_csv(fname)
x = df.iloc
y = df.iloc
skm = lm.LinearRegression()
skm.fit(x, y)
b = skm.intercept_
a = skm.coef_

if __name__ == ‘__main__’:
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

После выбора файла, при нажатии btn1 приложение крашится

Офлайн

#9 Апрель 4, 2017 21:33:18

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Вывод переменной на виджет

Agriel
После выбора файла, при нажатии btn1 приложение крашится
А в чем вы вообще пишете? Обычно если ексепшин какой так обычно пишет где и какой в консоли.
Заключайте код в теги code python /code, чтобы были отсутпы видны.
Что видно невооруженным взглядом “global a, b” (или даже nonlocal) нужно писать в button2Clicked, а вообще лучше обойтись без ‘global’ он там лишний. просто замените a на self.a , b на self.b везде
немного про global для саморазвития
https://pythonworld.ru/osnovy/faq.html



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Апрель 4, 2017 22:00:10)

Офлайн

#10 Апрель 4, 2017 22:25:59

Agriel
Зарегистрирован: 2017-03-23
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод переменной на виджет

PEHDOM
эклипс. вечер сижу не могу поправить

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version