LINUX.ORG.RU

Сообщения energyclab

 

QProcess возвращает process crashed

Форум — Development

Доброго времени суток господа знатоки. Уже неделю не могу решить проблему по запуску одного GUI приложения из-под другого. Суть состоит в следующем. Есть GUI написанный под PyQt4, который был собран PyInstaller-ом в exe файл с опциями --onefile -w(--windowed). этот GUI успешно запускается... Еще я написал второй GUI(PyQt4) который в свою очередь скачивает последнюю версию первого гуя и запускает его из под себя как отдельный процесс. Он тоже собран в отдельный exe файл. Спеки гуев ниже:

GUI1

# -*- mode: python -*-
a = Analysis(['c:\\Test\\gui1.py'],
             pathex=['c:\\Test\\build'],
             hiddenimports=[],
             hookspath=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name=os.path.join('dist', 'gui1.exe'),
          debug=False,
          strip=None,
          upx=False,
          console=False )

GUI2

# -*- mode: python -*-
a = Analysis(['c:\\Test\\gui2.py'],
             pathex=['c:\\Test\\build'],
             hiddenimports=[],
             hookspath=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name=os.path.join('dist', 'gui2.exe'),
          debug=False,
          strip=None,
          upx=False,
          console=False )

функция запуска выглядит следующим образом:

self.p = Qt.QProcess( self )
self.p_env = Qt.QProcessEnvironment.systemEnvironment()
self.p.setProcessEnvironment( self.p_env )
self.connect( self.p, Qt.SIGNAL( 'error( QProcess::ProcessError )' ), self.printError )
self.connect( self.p, Qt.SIGNAL( 'started()' ), self.printStarted )
self.p.setWorkingDirectory( path + str( Qt.QString( Qt.QDir.separator() ) ) )
self.p.start( pythonArg )          # Абсолютный путь к программе
self.p.waitForFinished( -1 )

При запуске процесса срабатывает сигнал started, однако после этого программа не запускается, хотя если ее просто запустить, то все работает. Пробовал изменить started на static execute, возвращает 1 (Process crashed). Если заменить запускаемый GUI на любую программу (пробовал putty.exe) то все работает замечательно... Не понимаю в чем дело, помогите... Причем под Linux Mint все пашет как надо

energyclab
()

Python, сборка из модулей

Форум — Development

Друзья, помогите с решением следующей проблемы. Есть программа 1 (все с использованием PyQt), которая выполняет некоторое необходимое действие, эта программа так же должна обновляться. Я написал программу 2, которая делает следующее: она конектится к серверу и узнает последнюю версию программы 1, если доступна новая версия то она ее выкачивает и запускает новую версию, иначе запускает существующую. И 1 и 2 программы по отдельности запускаются, собраны в один exe файл через PyInstaller под Windows7 (т.е. Программа1.exe и Программа2.exe). В программе 2 я используя модуль subprocess (call) пытаюсь запустить программу 1. В линуксе эта связка работает на ура, однако когда я сделал сборку через PyInstaller для Windows, то запускаться программа 1 перестала из под программы 2. ошибка следующая:

No module, named PyQt4.QtCore
Эта ошибка вылезает только при запуске из под subprocess.call. По отдельности все грузится и работает норм. Гугл не помог, я нашел что импорт модулей должен производится через «from PyQt4 import QtCore...» сделал две тестовые программы у меня таже самая проблема((( А возможно это не есть самый хороший путь. Может кто наставит на путь истинный? Как вообще правильно эту схему реализовать на Python

energyclab
()

Qt Всплывающие(baloon) сообщения в

Форум — Development

Помогите пожалуйста реализовать следующую штуку. Я создал объект QSystemTrayIcon и использую showMessage для уведомления оператора, все вроде бы хорошо, единственное что мне нужно, чтобы когда появляется еще одно сообщение, старое не заменялось новым а всплывало вверх, подскажите пожалуйста как это сделать, буду очень благодарен

energyclab
()

PyQt4, QWebView в Linux Mint

Форум — Development

Всем привет. Столкнулся с следующей проблемой. Есть GUI в котором я хочу отображать интернет страницу, адрес которой мне присылает сервер. Для сего дела использую QWebView:

self.web = QWebView( self )

self.mainLay = Qt.QVBoxLayout( self )
self.mainLay.addWidget( self.web )

self.web.load( Qt.QUrl( 'http://...' ) )
self.web.show()

Проблема в том, что когда я этот код запускаю из под интерактивного режима, все работает на ура, когда же я запускаю программу, то страница загружается, однако никаких картинок нету, видна верстка, короче голый сайт без каких либо вкусностей... Подскажите пожалуйста в чем может быть дело, python 2.7, qt-4.8.2

energyclab
()

Web-сокеты, PyQt4 и Proxy (можно С++)

Форум — Development

Привет жителям лора. Появилась проблема: Есть программа на pyqt (python 2.7, qt-4.4.8), которая общается по web сокетам, используя ws4py модуль. Возникла необходимость выполнять настройку proxy. Модуль ws4py не предоставляет такой возможности, и поэтому я хотел бы воспользоваться возможностями Qt (например QNetworkProxy::setApplicationProxy(...)), однако не понимаю как это можно сделать, если qt не предоставляет web-сокетов. подскажите кто чем может, хотелось бы оставить работу на сокетах ws4py, но есть огромная потребность в proxy настройках

energyclab
()

Виджет прокрутки содержимого Qt, PyQt C++

Форум — Development

Всем добрый вечер. Необходимо мне реализовать виджет следующего формата: Пишу сейчас на PyQt4. Я поступил следующим образом:

  • Унаследовал QPushButton и назвал его MyButton. Внутри класса установил иконку, текст. Создал еще кнопку фиксированного размере(5px,5px - та, которая крестик на кнопке) и установил ее в качестве layout. В итоге получил кнопку как на рисунке.
  • Унаследовал QWidget - MyWidget. Сделал метод addButton, который создает MyButton и добавляет его в вертикальный Layout MyWidget.
  • По нажатию на крестик (маленькая кнопка внутри большой кнопки) объект класса MyButton генерирует сигнал, по которому виджет MyWidget должен этот объект удалить

Все вроде-бы ничего, до только вот удаление объекта нельзя сделать, т.к. слот выполняется в контексте сигнала «Удали меня». Не понимаю как решить такую задачу, посоветуйте что нибудь. Так же не знаю пока как сделать так, чтобы при зажатии левой кнопки мыши на кнопке я мог прокручивать список... Подскажите пожалуйста в каком направлении двигаться.. Возможно я вовсе не правильно все начал делать. Исходники на С++ тоже принимаются (мне нету разницы на чем писать...)

energyclab
()

Мапирование памяти для взаимодействия с устройством на PCI шине

Форум — Development

Всем добрый вечер. Не мог бы кто пояснить технологию мапирования адресов из физических в виртуальные и наоборот. Стоит задача: Есть некоторое устройство на PCI шине, для обмена с которым считывается «физический адрес» из конфигурационного пространства PCI. Этот адрес указывает на структуры данных, с помощью которых и происходит взаимодействие (DMA). Главная структура должна содержать физические адреса на другие структуры и т.д. Мне необходимо заполнить эти структуры и в одной из них выставить бит, сигнализирующий устройству, что данные загружены в память DMA и оно может их обработать. Мало того, оно мне присылает ответ в этих же структурах. Проблема в том, что я не могу работать с физическими адресами напрямую, а устройство не может работать с виртуальными адресами. Не понимаю каков механизм мапирования/размапирования даной секции DMA памяти, подскажите пожалуйста...

energyclab
()

Разработка AHCI драйвера

Форум — Development

Всем привет. Есть проблема, которая одолевает меня уже две недели. Пишу я ahci драйвер. За основу взята статься с http://wiki.osdev.org/AHCI ну и соответственно спецификация от intel http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/serial-ata-ahci-spec-rev1_3.pdf. Так вот, обмениваться с хардом я пытаюсь в режиме DMA, В примере, приведенном на osdev.com описана функция чтения секторов с диска. Считать с диска у меня получилось, однако когда я попытался записать, контроллер поднял бит ошибки

Offset 30h: PxSERR – Port x Serial ATA Error - Handshake Error...

. Вроде различий в построении этих команд не должно быть, однако сектора записываться не хотят. На всякий случай выкладываю код функции выполнения команды:

http://pastebin.com/psHUNsqK

energyclab
()

Alt Linux c SATA хардом, но с ata_piix

Форум — Linux-install

Всем добрый день Установил дистр Alt Linux. Для работы с SATAшным хардом загружен модуль ahci, мне необходимо, чтобы хард работал в режиме IDE, для чего я проделал следующее: 1. В BIOS установил режим IDE 2. В /etc/modprob.d/aliases добавил строку alias scsi_hostadapter ata_piix 3. Пересобрал initrd с параметром --preload ata_piix 4. Поправил конфиг загрузчика, ну и ребутнулся.

В результате ОС не грузится, после прогрузки udev выдает сообщение:

Mounting root file system ...
Waiting for root file system ...

Складывается ощущение, что либо BIOS эмулирует режим IDE «как то не так», либо драйвер совсем не тот, хотя на другой машине с этой же ОС все норм заработало. Подскажите кто что знает по этому поводу....

energyclab
()

Asm + C/C++

Форум — Development

Доброго всем дня. Задали мне лабораторную сделать и суть ее такова: Необходимо написать программу на ассемблере которая умеет перехватывать системные события. К примеру, пишется программа на С, в которой вызывается функция, что то делает и возвращает этот результат, задача программы на асме поймать возврат этой функции и подставить на место возвращаемых данных свои. Подскажите где что можно почитать для этого задания, времени особо углубляться в это нету поэтому даже самые простые варианты приветствуются, буду примного благодарен за помощь

energyclab
()

Как подружить OPTIMUS и gentoo

Форум — Linux-install

Собственно проблема в следующем. Есть ноутбук Lenovo Y570. На борту 2 карты: Встроенная intel и дискретная NVidia. Вопрос, как подружить их вместе с Gentoo. Ядро 3.1.0. Поискав в инете ответ на данный вопрос понял что необходимо все это сделать через optimus. Сделал все как написано в статье http://en.gentoo-wiki.com/wiki/X.Org/nVidia_Optimus. Но призапуске optirun glxgears пишет

Optimus X Server is not running!
. Стал искать дальше, и выяснил что это из за того что отсутствуе файл
.X1-lock
, на сколько я понял
/etc/init.d/optimus start
не запустил никакого нового X сервера... Прошу помочь с этой проблемой, если кто знает порядок установки этой фитчи - помогите. Что и где я сделал не так? Так же до этого я устанавливал скрипты bumblebee. они появились, но их использование не дает никаких результатов... Выкладываю конфиг сгенеренный X -configure:
Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "Screen0" 0 0
	Screen      1  "Screen1" RightOf "Screen0"
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
	ModulePath   "/usr/lib64/xorg/modules"
	FontPath     "/usr/share/fonts/misc/"
	FontPath     "/usr/share/fonts/TTF/"
	FontPath     "/usr/share/fonts/OTF/"
	FontPath     "/usr/share/fonts/Type1/"
	FontPath     "/usr/share/fonts/100dpi/"
	FontPath     "/usr/share/fonts/75dpi/"
EndSection

Section "Module"
	Load  "glx"
	Load  "extmod"
	Load  "record"
	Load  "dri2"
	Load  "dbe"
	Load  "dri"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/input/mice"
	Option	    "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
EndSection

Section "Monitor"
	Identifier   "Monitor1"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
EndSection

Section "Device"
	Identifier  "Card0"
	Driver      "nvidia"
	BusID       "PCI:1:0:0"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "DRI"                	# [<bool>]
        #Option     "ColorKey"           	# <i>
        #Option     "VideoKey"           	# <i>
        #Option     "FallbackDebug"      	# [<bool>]
        #Option     "Tiling"             	# [<bool>]
        #Option     "LinearFramebuffer"  	# [<bool>]
        #Option     "Shadow"             	# [<bool>]
        #Option     "SwapbuffersWait"    	# [<bool>]
        #Option     "TripleBuffer"       	# [<bool>]
        #Option     "XvMC"               	# [<bool>]
        #Option     "XvPreferOverlay"    	# [<bool>]
        #Option     "DebugFlushBatches"  	# [<bool>]
        #Option     "DebugFlushCaches"   	# [<bool>]
        #Option     "DebugWait"          	# [<bool>]
        #Option     "HotPlug"            	# [<bool>]
        #Option     "RelaxedFencing"     	# [<bool>]
	Identifier  "Card1"
	Driver      "intel"
	BusID       "PCI:0:2:0"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	SubSection "Display"
		Viewport   0 0
		Depth     1
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     4
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     8
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     15
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     16
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection

Section "Screen"
	Identifier "Screen1"
	Device     "Card1"
	Monitor    "Monitor1"
	SubSection "Display"
		Viewport   0 0
		Depth     1
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     4
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     8
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     15
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     16
	EndSubSection
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection

energyclab
()

Настройка USB 3.0 в gemtoo

Форум — Linux-install

Всем здрасте! Возникла у меня проблема, пересобрал как то я ядро (3.0.6), и после того, как однажды я попытался примотировать хард выяснил, что USB 3.0 то не работает... Модуль xhcd-cdi загружен, но хард дажее и не шевелится откликаться... только гудит паразит такой)))Прошу помочь, кто чем сможет, любые конфиги выложу ( сейчас не выкладываю, потому, что не знаю какие нужны...) HELP HELP HELP!!!! SOS

energyclab
()

[gentoo]Проблема с x сервером и двумя видюхами

Форум — Linux-install

Всем добрый день. Пытаюсь поставить иксы в который раз...не получается... Имею машину lenovo Y570 c двумя видео картами на борту, дискретная и встроенная соответственно. Первая intel HD 3000 а вторая GeForse G555. Установил x сервер, дрова от nvidia поставил, вроде бы все в порядке и даже xorg.conf генерится без ошибок. Но вот при попытке запустить иксы пишет:

NVIDIA: could not open the device file /dev/nvidia0 (Input/output error).
(EE) NVIDIA(0): Faild to initialize the NVIDIA GPU at PCI:1:0:0. Please enter 
(EE) NVIDIA(0): cheak your system`s kernel log for additional error
(EE) NVIDIA(0): messages and refer to Chapter 8: Common Problems in the
(EE) NVIDIA(0): README for additional information.
(EE) NVIDIA(0): Faild to initialize the NVIDIA graphics device!
(EE) Screen(s) found, but not have a usable configuration
........

Модуль для встроенной карты i915 для дискретной nvidiafb. Причем оба загружены....Пытался выключить i915 говорит что не может, типа модуль используется, выключал nvidia проблема не решилась...Вторая карта включается по ползунку на машине причем после этого горит светодиод, сигнализирующий о включеном адапторе (эт в Винде). В линухе этого не происходит... Помогите кто чем может, может кто сталкивался...

 

energyclab
()

[gentoo] Загрузка модуля wifi на livecd

Форум — Linux-install

Экспертам здрастее.... Прошу помочь с решением следующей проблемы: С livecd загрузил gentoo. Как только начал настраивать сеть выяснил что драйвер для карты wifi отсутствует. lspci показал:

lspci -k

.......
07:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57781 Gigabit Ethernet PCIe (rev 10)
        Subsystem: Lenovo Device 3975
        Kernel driver in use: tg3
        Kernel modules: tg3
08:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)
        Subsystem: Broadcom Corporation Device 051b
.......
Попытался загрузить модуль b43, результат тот же... Подскажите что делать...

 

energyclab
()

[C++]Продолжение темы по *_cast

Форум — Development

Итак, уважаемые друзья, недавно мой друг dikar отпостил вопросы по поводу того зачем нужен *cast( тема Здесь). Так вот, пораскинув своими мозгами, мы поняли, что донесли до вас нашу спорную ситуацию не верно...И вот теперь исправляемся...

Значит дело было в следующем. На работе как и говорилось пишем визуальный интерфейс на Qt. Так как пишется он уже очень давно, то и коду выросло не мало. В один момент, по нажатию кнопки, у нас выскакивает наш написанный класс VIDACHA - потомок от QDialog. В этом классе живет другой наш класс. Это класс наследован от QWidget и называется Forms. Конструктор каждого из них принимает указатель на QWidget( прошу заметить, что сами классы между собой никак не связаны , но класс Forms при своем создании принимает указатель класса VIDACHA).Т.е:

class VIDACHA : public QDialog {
   VIDACHA( QWidget * = 0 );

   Forms *forms;
   //Другие виджеты
};

class Forms : public QWidget {
   Forms( QWidget * = 0 );

   public:
      void someFunction();
};

void Forms :: someFunction() {
   //Какие-то манипуляции после которого надо закрыть весь QDialog
   // Вот так мы закрыли QDialog
   VIDACHA *papa = dynamic_cast< VIDACHA* >( parent() );
   if( papa != NULL )
      papa -> close();
}

Это предложил я, вот тут у нас и возник спор. Мой друг и коллега dikar  это дело все удалил и сделал следующее:
void Forms :: someFunction() {
   //Какие-то манипуляции после которого надо закрыть весь QDialog
   // Вот так мы закрыли QDialog
   reinterpret_cast< VIDACHA* >( parent() ) -> close();
}

Вопрос, как правильно поступить в этой ситуации?

 

energyclab
()

C++/Странная работа iconv

Форум — Development

привет всем жителям сайта.
Появилась проблема с iconv.Есть следующее:

void convert( char *from, size_t fromsize, const char* fromCharset, const char* toCharset ) {
size_t s1 = fromsize;
size_t s2 = fromsize;

printf( «fromLen = %d\n», strlen( from ) );
printf( «from = %s\n\n», from );

iconv_t d = iconv_open( toCharset, fromCharset );
iconv( d, &from, &s1, &from, &s2 );

printf( «fromLen = %d\n», strlen( from ) );
printf( «from = %s\n\n», from );

iconv_close( d );
}

int main() {
char *prt = new char[ 1000 ];
....
здесь prt заполняется строкой запроса из браузера (POST /...)
iconv( prt, strlen(prt), «UTF-8», CP1251" );
printf( «prt = %s\n», prt );

return 0;
}


На экране следующее...
fromLen = 888;
from = POST /....

fromLen = x; ( произвольный размер или 0 )
from = абра кадабра или 0

prt = POST /... но в конце не хватает символов, когда 5 штук, когда 3, в общем каждый раз по разному


С чем это может быть связано, кто уже сталкивался с этим делом.. И если есть аналоги то посоветуйте...

energyclab
()

Проблема с настроикой связки Apache + PHP5 на gentoo

Форум — Web-development

Все кто откликнулся, привет. У меня такая проблема: У меня дистрибутив Gentoo amd64, Поставил я на него web-сервер apache, Атак же поставил PHP5, дальше я почитав понял, что чтобы связать их надо поставить php-mode, что я собственно и сделал. Запустил сервер и перешел на его струницу. Для проверки связки написал php сценарий:

<?
echo «<html><body><h1>»;
echo «Hello User, Apach + PHP is enable!!!»;
echo «</h1></body></html>»;
?>
Кликнув на этот сценарий естественно ничего не увидил, как собственно и предпологал. Помогите решить проблему, где я что не правильно скофигурил

energyclab
()

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