Сообщения braboar
После удаления виджет 'already exists'
Код, конечно, не весь, но, вроде, должно быть понятно. Есть ttk::notebook, хочется добавлять/удалять вкладки:
ttk::notebook .nb
proc add_tab {} {
set tab_cnt [.nb index end]
.nb add [frame .nb.fr$tab_cnt]
}
proc del_tab {} {
set tab_no [expr [.nb index end] - 1]
.nb forget .nb.fr$tab_no
}
Последняя вкладка удаляется, как и было задумано, но при попытке добавить новую, получаю
window name «fr0» already exists in parent
Как правильно удалить вкладку?
Странный QProcess
Делаю я тут одну программу, все как обычно - MainWindow с GUI. По нажатию кнопки требуется запустить консольную утилиту, выход которой перехватывается и отображается в окне. Ну вот прямо в MainWindow создаю QProcess, его сигналы соединяю со слотами MainWindow, командую ему start - все работает. Так как хотелось бы все это делать в отдельном потоке - переношу код в потомка от QThread и тут всем весом попадаю на грабли. В заботливо созданные слоты потока сигнал не приходят. WTF или так и должно быть? Да, куда рыть и что искать?
Изменить размер виджета text
Что-то не удалось связать размер виджета с размером окна. Делал так:
frame .textarea
text .txt -yscrollcommand ".srl_y set" -xscrollcommand ".srl_x set" -width 20 -height 10
scrollbar .srl_y -command ".txt yview" -orient v
scrollbar .srl_x -command ".txt xview" -orient h
grid .txt -in .textarea -row 1 -column 1
grid .srl_y -in .textarea -row 1 -column 2 -sticky ns
grid .srl_x -in .textarea -row 2 -column 1 -sticky ew
pack .textarea -fill x -fill y
Поиск файла
Здравствуйте, добрые люди!
Написал такоую конструкцию:
package require fileutil
proc exact_match { name } {
return [ string match qmake [ ::file tail $name ] ]
}
proc is_qmake { name } {
return [ exact_match $name ] && [ ::file isfile $name ]
}
set files [ ::fileutil::find /usr is_qmake ]
foreach file $files {
puts "$file: [ file type $file ]"
}
Вроде exact_match и is_qmake работают, как надо, но выводит почему-то любые файлы. Объсните, плиз, что не так.
Как научить qmake понимать вывод mercurial
В qmake-based проекте есть такая строка
CHANGESET=$$system(hg parents --template '{node\\|short}')
'short}' is not recognized as an internal or external command
Насколько я понял, надо заэкранировать
|
, но что-то у меня ничего не выходит. Есть какие-ибудь идеи?
И снова Tcl, на этот раз ttk::combobox
Сделал я на днях простейший скрипт, там есть ttk::combobox. При инициализации указываю:
ttk::combobox .cmb -values $names
.cmb configure -values $names
button -command не работает с командой
Есть такой скрипт:
#!/bin/sh
# calling wish \
exec wish "$0" ${1+"$@"}
set cmakeBinName "<noname>"
proc Get_CMakeBin {} {
set cmakeBinName [ tk_getOpenFile -initialdir / ]
}
label .l -text { CMake bin: }
label .lb -bg white -width 24 -textvar cmakeBinName
button .cmb -text "..." -command "set cmakeBinName \[ tk_getOpenFile -initialdir / \]"
# button .cmb -text "..." -command Get_CMakeBin
grid .l .lb .cmb
Значение dict не возвращается, что не так?
Такой код:
#!/usr/bin/tclsh
#
proc processdict d {
dict append d key Key
dict append d value Value
puts $d
}
set data [dict create name Bob age 20]
puts $data
processdict $data
puts $data
name Bob age 20
name Bob age 20 key Key value Value
name Bob age 20
задать место на экране KDE screenlocker password dialog
Картинку фоновую поменял, как изменить местоположение диалога?
JavaScript - объясните, что происходит
Есть ip.js
var net = require('net');
function getNetworkIP(callback) {
var socket = net.createConnection(80, 'www.google.com');
socket.on('connect', function() {
callback(undefined, socket.address().address);
socket.end();
});
socket.on('error', function(e) {
callback(e, 'error');
});
}
exports.getNetworkIP = getNetworkIP;
Подключаю, вызываю:
var addr;
ip.getNetworkIP(function (error, addr) {
console.log('inner: ' + addr);
if (error) {
callback(e, 'error');
}
});
console.log('ip: ' + addr);
ip: undefined
inner: 192.168.21.94
Помогите понять, как сохранить ip в переменной. Заранее благодарен.
console colors
subj, собственно. Хотел раскрасить konsole по-своему. Ну, например, можно редактировать профиль konsole. Вот только не могу найти соответствие цветов файлам, директориям и пр. Дайте, плиз, ссылок на доки. заранее благодарен.
QMAKE_LFLAGS_SONAME
По независящим от меня обстоятельствам, вынужден некую либу именовать без префикса, myCoolLib.so. Нашел у qmake флаг, QMAKE_LFLAGS_SONAME, но он на префикс не влияет. Кто-нибудь знает, как заставить qmake не добавлять префикс?
Заранее благодарен.
sources отдельно, objects отдельно
Сочинил я вот такой makefile:
EXECUTABLE=bin/test
CC=gcc
CFLAGS=-c -Wall
LDFLAGS=
SOURCES=src
SEARCH_WILDCARDS=$(addsuffix /*.c,$(SOURCES))
$(EXECUTABLE): $(notdir $(patsubst %c,%o,$(wildcard $(SEARCH_WILDCARDS))))
$(CC) $(LDFLAGS) $^ -o $@
VPATH=$(SOURCES)
%.o: %.c
$(CC) $(CFLAGS) $(addprefix -I,$(SOURCES)) $< # -o obj/$(notdir $<)
clean:
rm -f *.o test
Как это сделать?
Растолкуйте про wait_event_interruptible_timeout
Ибо сказано:
The function returns 0 if the timeout elapsed, -ERESTARTSYS if it was interrupted by a signal, and the remaining jiffies otherwise if the condition evaluated to true before the timeout elapsed.
Использую функцию в модуле ядра. Если обработчик прерывания отработал, возвращается 500 (это мой timeout), если нет - 0. В каком случае функция вернет -ERESTARTSYS?
Не устанавливается ecb в emacs
Захотелось освоить emacs хоть немного. Только вот при попытке поставить cedet+ecb возникают проблемы. ECB требует cedet-1.0pre6 или cedet-1.0.9, которого нигде нет, а cedet-1.0pre6 не собирается:
lmcompile.el:35:1:Error: Forgot to expand macro eieio-object-p
Кто-нибудь сможет помочь советом и делом?
GNU Emacs 24.3.1
Заранее спасибо.
Драйвер, обработчик прервания не вызывается
Кажется, сделал все, что нужно. При инициализации модуля
enable_irq(dev.irq_line);
if (0 != request_irq(dev.irq_line, irq_hndl, IRQF_SHARED, DRV_NAME, dev.dev_id)) {
/* printk error code */
}
iowrite32(some_command, BAR0+8);
wait_event_interruptible_timeout(my_queue,
dev.irq_flag != 0,
500);
И снова драйвер
LDD3 при установке обработчика прерываний рекомендуют:
request_irq(short_irq, short_interrupt, SA_INTERRUPT, ...
error: 'SA_INTERRUPT' undeclared
Чем лучше заменить SA_INTERRUPT?
Непонятно мне...
bar0 = pci_resource_start(pdev, 0);
val = pci_resource_len(pdev, 0);
if (0 != pci_request_region(pdev, 0, DRV_NAME)) {
printk(KERN_INFO" can not request region for device %s\n", DRV_NAME);
return -EFAULT;
}
сообщает что не может запросить регион. Да и dmesg показывает:
sgdma 0000:01:00.0: BAR 0: can't reserve [mem 0xf7c01000-0xf7c0107f]
Что бы это могло значить?
Linux device drivers
Доброго времени суток!
Надо сделать драйвер pci-e устройства.
Сижу, читаю LDD3. Кое-что понял, а вопрос организовался такой: как пользовательская программа должна читать/писать данные? Символьные устройства используют структуру file_operations, блочные - block_device_operations, а pci устройства что используют?
| ← назад | следующие → |