LINUX.ORG.RU

Сообщения TX4D

 

Qt oauth2 авторизация

День добрый. Делаю авторизацию на qt.

    oauth2.setReplyHandler(replyHandler);
    oauth2.setAuthorizationUrl(auth_url);
    oauth2.setAccessTokenUrl(access_token_url);
    oauth2.setClientIdentifier(client_id);
    oauth2.setClientIdentifierSharedKey(client_code);
    oauth2.setModifyParametersFunction([](QAbstractOAuth::Stage stage, QVariantMap *parameters) {
        (*parameters)["redirect_uri"] = QUrl("https://127.0.0.1:17801/");
    });

   connect(&oauth2, &QOAuth2AuthorizationCodeFlow::authorizeWithBrowser, &QDesktopServices::openUrl);

Проблема в том, что при получении токена и редиректе на 127.0.0.1 соединение не слушается на https. Только на http. Соответственно, что можно сделать? Юзать webview или переписывать QOAuthHttpServerReplyHandler и QOAuthHttpServerReplyHandlerPrivate не очень то хочется.

 , ,

TX4D
()

Запрос размера файла по протоколу https

Вечер добрый. Как можно узнать размер файла, не скачивая его, если доступ к нему возможен только по https? Например на дропбоксе узнать размер перед скачиванием.

С http понятно все:

import urllib2

req = urllib2.Request('http://support.satgate.net/dl_test/dl/5MB.bin')
req.get_method = lambda : 'HEAD'
response = urllib2.urlopen(req)

print int(response.info()['Content-Length'])/1024/1024

А как быть с https?

 

TX4D
()

pyqt, qwizard и передача переменной

Имеется несколько страниц QWizardPage принадлежащие QWizard. В одной из них происходит выбор пути для установки. При создании объекта она инициализируется некоторым произвольным значением. При нажатии на кнопку «обзор» заполняется её значение. Но при переходе на следующую страницу она снова содержит значение, которое её было присвоено при объявлении. Как можно передать переменную между страницами(функциями)?

from PyQt4 import QtGui, QtCore
import sys
 
 
class Test(QtGui.QWizard):
    def __init__(self, parent=None):
        QtGui.QWizard.__init__(self, parent)
        self.path = unicode("1")
        self.addPage(self.firstpage())
        self.addPage(self.secondpage())
 
    def firstpage(self):
        page = QtGui.QWizardPage()
        nameButton = QtGui.QPushButton(u"Изменить")
        nameLineEdit = QtGui.QLineEdit()
        self.connect(nameButton, QtCore.SIGNAL('clicked()'), lambda: self.setDir(nameLineEdit)) #тут по клику выполняется мой слот
        layout = QtGui.QHBoxLayout()
        layout.addWidget(nameLineEdit)
        layout.addWidget(nameButton)
        page.setLayout(layout)
        return page
 
    def secondpage(self):
        page = QtGui.QWizardPage()
        page.setTitle(unicode(self.path)) #здесь оно содержит значение 123
        return page
 
    def setDir(self, nameLineEdit):
        self.path = "New Path" #здесь должно происходить замещение новым путем. 
                               #Но он действует только на одну страницу. Может локалки напутаны?
        nameLineEdit.setText(self.path)
 
app = QtGui.QApplication(sys.argv)
window = Test()
window.show()
sys.exit(app.exec_())

 ,

TX4D
()

RSS подписка на новые темы