[Chromium] картинки как в опере
После некоторого разочарования в FF решил потестить хромиум. Все неплохо, но жалко трафик (есть еще и такие).
В FF был плагин ImgLikeOpera.
Есть ли такое же для Chromium?
После некоторого разочарования в FF решил потестить хромиум. Все неплохо, но жалко трафик (есть еще и такие).
В FF был плагин ImgLikeOpera.
Есть ли такое же для Chromium?
Уважаемый пипл!
На сколько я понимаю, тут находятся не только программисты но и схемотехники.
Вопрос такой: можно ли в NGSPICE промоделировать КНИ КМОП транзистор? Если да, то можно ли пример. Сам что-то не могу разобраться, ибо вроде, в мануале пишут, что модель есьт, но при перечислении аргументов параметра LEVEL указывается, что bsimsoi недоступна. В исходниках есть, но использовать ее пока не получилось.
Есть ли другое открытые SPICE-программы, где можно использовать bsimsoi?
На electronix.ru не отвечают(
Уважаемые, вот кусо кода:
QDomElement file = newcurve.toDocument().createElement("file");
file.setAttribute("num",QString::number(i+1));
newcurve.appendChild(file);
...................................................
QDomElement cir = file.toDocument().createElement("Cir");
cir.appendChild(cir.toDocument().createTextNode(QString::fromStdString(cur.inFile.at(i))));
file.appendChild(cir);
qDebug()<<"cir.text() : "<<(cir.text())<<" cur.inFile.at(i): "<<QString::fromStdString(cur.inFile.at(i));
cir.text() : "power/10yq045/idvg-0.cis" cur.inFile.at(i): "power/10yq045/idvg-0.cir"
Кстати, вот, что еще выводится в консоли при закрытии программы:
*** glibc detected *** ./SpiceParamExtractor: double free or corruption (out): 0x0817c020 ***
Почему так? Что с последним символом строк? («power/10yq045/idvg-0.cis» и «power/10yq045/idvg-0.cir»)
Далее,
из исходников собрал KDE 4.5 под Debian Etch, скомпилял исходники и там ничего такого плохого нету.
Все работает, как я хочу и никаких «double free or corruption» нету.
Неужели дело в QT? (OpenSuse 11.2 QT 4.5.3-2.4.2)...
Уважаемые форумчане, снова я к вам обращаюсь!
Подскажите, как отловить факт изменения значения ячейки в QTableWidget (и желательно само новое значение). Т.е. когда я ввожу или изменяю значение ячейки таблицы, я нажимая клавишу ввода. Возможно, я невнимательно смотрел, но я не заметил сигнала, который бы генерировался в данном случае. Есть сигнал смены ячейки, но это не очень катит.
Пробовал перехватить нажатие ввода на форме, но если фокус находится на виджете таблицы, то событие не генерируется (не обрабатывается нажатие ввода).
Подскажите как быть?
Спасибо.
собсно сабж)
Подскажите, plz, как правильно в cshrc подключить настройки из другого файла?
В bashrc это делается с помощью команды source <путь к файлу>.
Спасибо!
Уважаемые,
честно признаюсь: влом ман читать по mencoder'у.
Есть скрипт, которым я конвертирую лоя моей motorola z6 видео (нашел на просторах тырнета).
Только ради этого ffmpeg влом. Хочу mencoder. Помогите
#!/bin/sh
VBR=296k #полнимаем для лучшего видео
ABR=64k #поднимаем для лучшего звука
FRAME=15 #25 для MPlayer;)
VCODEC=mpeg4 #или mpeg4
ACODEC=libfaac #в некоторых версиях ffmpeg - libfaac
VIDEOSIZE=320x240 #no comments
CONTAINER=mp4 #можно менять на 3gp
SRC=$1
if [ "$2" == "" ]; then
DST=$SRC.$CONTAINER
else
DST=$2
fi
ffmpeg -y -i "$SRC" -s $VIDEOSIZE -aspect 4:3 -vcodec $VCODEC -b $VBR -r $FRAME -acodec $ACODEC -ac 1 -ab $ABR "$DST" -pass 2 -passlogfile passlogfile.log
Вопрос ессно в последней строчке.
Уважаемый ALL!
Опять взываю к вашей помощи!
Есть класс, унаследованный от QThread.
Данный класс запускается по нажатию на кнопку «Start» в GUI (название кнопки меняется на «Stop» и по нажатию на этот «Stop» все расчеты должны прекратиться).
из метода run вызывается go():
void ExtrThread::go(){
emit started();
/*SpiceExtr*/ *spe;
spe= new SpiceExtr(path);
connect(spe, SIGNAL(startModelChanging()), this, SLOT(MEdStarted()));
connect(spe, SIGNAL(stopModelChanging()), this, SLOT(MEdStoped()));
........
spe->MultiRun(dim, x, fx, result);
emit stopped(cur);
}
void SpiceExtr::setSpiceInputValues(string sl){
emit startModelChanging();
..................................
QFile new_f(QString::fromStdString(filename.c_str()));
QFile old_f(QString::fromStdString(sl.c_str()));
if(old_f.open(QIODevice::ReadWrite)){
if(new_f.open(QIODevice::ReadWrite)){
QTextStream in_stream( &old_f );
QTextStream out_stream( &new_f );
QString line;
while(!in_stream.atEnd()){
............................
}
}else{
qDebug()<<"setSpiceInputValues NewFil Error\n";
exit(0);
}
}else{
qDebug()<<"setSpiceInputValues OldFil Error\n";
exit(0);
}
old_f.close();
new_f.close();
if(old_f.remove()){
if(!new_f.rename(QString::fromStdString(sl.c_str()))){
qDebug()<<"Error file"<< QString::fromStdString(filename.c_str())<<" renaming failed\n";
exit(0);
}else {
}
}else{
}
emit stopModelChanging();
};
setSpiceInputValues OldFil Error
Вот так я все убиваю:
void ExtrThread::kill(){
if(yesToKill) {
del();
spe->deleteLater();
delete spe;
this->terminate();
this->exit();
}
}
А как правильно?
SpiceExtr изначально делался для консольного приложения, поэтому можно наследовать от чего угодно (пока это QObject).
З.Ы За помесь STL и QT прошу не ругать. Устрою субботник и все подправлю).
Уважаемые,
Есть исошка на 4 с копейками гигов и есть две флехи: на 2 и на 4 гига. Подскажите чем сожно разбить исошку для транспортировки), и потом ее склеить?
Уважаемые,
установлена opensuse 11.2. Изначально стоял виджет «подключаемые устроиства». При его использовании с отображением файлов с русскими именами проблем не было, но надо было руками подключать устройства.
Поставил себе «device manager», который поддерживет автомантирование. Но при его использовании файлы с русскими именами отображаются вопросительными знаками.
Как это исправить? Спасибо.
Снова вопросы...)
Есть GUI и есть функция, которая очень долго считает. Хочу эту функцию запустить в отдельном потоке, чтобы можно было в GUI на кнопочки жмякать. Сделал наследника от QThread
ExtrThread::ExtrThread(curve *c, string p, QPushButton *b): QThread()
{
cur = c;
path = p;
button = b;
//run();
moveToThread( this );
}
void ExtrThread::run(){
isRuning = true;
button->setText("Stop");
qDebug()<<"Thread Start\n";
core(cur, path);// моя функция, которую хочу запустить параллельно с GUI
//system("cat /dev/random");
button->setText("Run");
qDebug()<<"Thread Stop\n";
isRuning = false;
exec();
emit stopped();
}
ExtrThread *extr;
.........
extr = new ExtrThread(&cur, "opt.conf", ui->pushButton);
extr->start();
При запуске ф-я считает, но окошко не реагирует на нажатия кнопок и пр. Если вместо моей ф-и записать system(«cat /dev/random»), то все ОК: окно ресайзится, кнопочки нажимаются, а в консоли бегут кракозябы.
Вопросы:
1. Почему с функцией так не получается?
2. моя ф-я из себя потом вызывает через system(...) внешнюю программу. Как мне можно перехватить вывод в консоль, чтобы его направить, к примеру, в QTextEdit?
Такая трабла:
необходимо слинковать мою программу с libf2c.
Если линкую с libf2c.so, то получаю ошибку undefined reference to `MAIN__'
Прочитал, что надо линковать с libf2c.a (в таком случае все нормально).
Делал программу в Эклипсе. Там можно было задавать пути к линкуемым либам и все нопмально линковалось.
Для того чтобы слинковать я сделал ссылку /usr/local/lib/libf2c.so, которая ссылается на /usr/lib/libf2c.a
Вопрос 1: Как при компиляции линковать c *.a файлами?
Сейчас делаю в QTCreator'е (навешиваю GUI). Нашел, что в нем надо писать
LIBS += -L/usr/local/lib -lboost_regex -llapack -lgslcblas -llevmar -lnewton -lga -lnewmat -lopt -lf2c
-L/usr/lib -L/usr/local/lib -lboost_regex -llapack -lgslcblas -llevmar -lnewton -lga -lnewmat -lopt -lf2c
Помогите! Можно ли по средствам QStandardItemModel добавить потомка в дерево.
фрагмент кода:
QModelIndex idx = ui->treeView->selectionModel()->currentIndex();
//if(DUT->createDevice(&ui->treeView->selectionModel()->currentIndex(), name)){
if(DUT->createDevice(&idx, name)){
}
bool DUTconfig::createDevice(QModelIndex *idx, QString name){
//добавляем узел в DUT
QDomElement dev = getDevice(idx->data().toString());
//если прибор с таким именем не существует
if(dev.isNull()){
QDomElement node = dut.toElement().toDocument().createElement("device");
node.setAttribute("name", name);
dut.appendChild(node);
save();
//проверим появился ли девайс
if(!getDevice(name).isNull()){
return true;
}else {
qDebug()<<"Same-thing wrong\n";
}
}
return false;
}
Прошу не пинать - я только начал разбираться с это штукой.
Вопрос такой:
Есть XML файл. Создаю переменную типа QStandardItem и для нее строю дерево в QTreeView элементов (с использованием QStandardItemModel), как показано в примере книжки (C++-GUI-Programming-with-Qt-4-1st-ed).
Это у меня работает.
treeModel = new QStandardItemModel(0,1);
ui->treeView->setModel(treeModel);
...................
QFile file(fileName);
//класс для работы с моим XML
DUT = new DUTconfig(&file);
...................
reBbuildTree();
.............
bool MainWindow::reBbuildTree(){
delete item;
item = new QStandardItem("DUT");
DUT->getTree(item);
treeModel->clear();
treeModel->setItem(0,0, item->takeChild(0,0));
return true;
}
Далее хочу добавить новый элемент.
Для этого узнаю выбранный элемент в дереве и добавляю в XML файле в соответствующую позицию. XML файл изменяется и структура итемов тоже.
void MainWindow::newDev(){
bool ok;
QString name = QInputDialog::getText(this, tr("Input dialog"),
tr("Enter device name:"), QLineEdit::Normal,
//QDir::home().dirName(), &ok);
QString(""), &ok);
if(name!=""){
if(ui->treeView->selectionModel()->currentIndex().isValid()){
//bool DUTconfig::createDevice(QModelIndex idx, QString name)
//эта ф-я и правит мой XML
if(DUT->createDevice(ui->treeView->selectionModel()->currentIndex(), name)){
//В следующей строке заново формирую дерево
// этот момент мне очень не нравится
reBbuildTree();
}
else QMessageBox::warning(this, "Warning!", "Device is not reated :(...");
}
qDebug()<<"newDev ui->treeView->selectionModel()->currentIndex().isValid()\n";
}
qDebug()<<"newDev Finish\n";
}
Теперь вопрос:
Как мне (можно ли) добавить новый элемент уже в дерево, не переделывая его заново?
как мне правильно использовать void QStandardItemModel::itemChanged ( QStandardItem * item ) (на сколько я понимаю он для этого и предназначен)?
Где мне подавать этот сигнал или он сам генерится? И как потом его обрабатывать?
Не совсем ясен принцип обработки такого действия.
еще раз прошу не пинать)
Спасибо!
Уважаемый ALL! Помогите новичку в QT!
Есть Qtreview с деревом. При нажатии на конкретную ветку выпадает контекстное меню. Это я сделал.
Но! По нажатию на один из пунктов меню я должен добавить нового потомка к дереву. Через Qpoint получаю позицию где надо отобразить само меню а также из Qpoint получаю QmodelIndex.
Вопрос в том как мне передать этот индекс в функцию добавления потомка, если у QAction в меню есть слот activaded, но нету слота, который передает Qpoint или A QmodelIndex?
Как это реализовать?
ui_mainwindow.h:
QObject::connect(treeView, SIGNAL(customContextMenuRequested(QPoint)), MainWindow, SLOT(showPopup(QPoint)));
void MainWindow::showPopup(const QPoint & iPoint)
{
QTreeWidgetItem * item = 0 ;
//item = ui->treeView->itemAt(iPosition) ;
if ( 0 == item )
{
//QMessageBox::information(this, "Popup", "No item selected" ) ;
// Build your menu
QMenu menu(ui->treeView);
if(isDUT(ui->treeView->indexAt(iPoint))){
menu.addAction(ui->actionNew_device);// - а что дальше - не знаю
connect(this, SIGNAL(popupActivated(QModelIndex)), this, SLOT(newDev(QModelIndex )));
//emit popupActivated(ui->treeView->indexAt(iPoint)); // если поместить сюда, то вызывается при выпадении списка, а не при нажатии на меню
}
if(isDevice(ui->treeView->indexAt(iPoint))){
menu.addAction(ui->actionRemove_device);
menu.addAction(ui->actionNew_curve);
}
if(isCurve(ui->treeView->indexAt(iPoint))) menu.addAction(ui->actionRemove_Curve);
qDebug()<<":popuprightclickMenu"; //just to see if activated
menu.exec(ui->treeView->mapToGlobal(iPoint));
}
Уважаемый ALL! Не могу разобраться! Вот структура:
#ifndef GLOBALS_H
#define GLOBALS_H
#include <string>
#include <vector>
#include <QString>
#include "globals.h"
using namespace std;
struct curve{
vector<string> inFile;
vector<string> outFile;
vector<string> expFile;
vector<string> spiceParam;
vector<string> spiceMin;
vector<string> spiceInit;
vector<string> spiceMax;
string AlgOpt;
};
#endif // GLOBALS_H
В другом файле: тут я в строковые поля передаюения и потом возвращаю структуру.
curve res;
..........
QDomElement inf = child.firstChildElement("file");
while(!inf.isNull()){
res.inFile.push_back(inf.firstChildElement("Cir").text().toStdString());
res.outFile.push_back(inf.firstChildElement("Out").text().toStdString());
res.expFile.push_back(inf.firstChildElement("Exp").text().toStdString());
inf = inf.nextSiblingElement("file");
}
В другом файле: тут из уже полученной структуры пытаюсь записать в поля таблицы значения
//теперь заполняем таблицы полученной инфой
ui->filestableWidget->setRowCount(0);
for(i=0;i<res.expFile.size();i++){
ui->filestableWidget->setRowCount(ui->filestableWidget->rowCount()+1);
ui->filestableWidget->setItem(ui->filestableWidget->rowCount()-1,0, new QTableWidgetItem("TTTTTT"));
ui->filestableWidget->setItem(ui->filestableWidget->rowCount()-1,0, new QTableWidgetItem(new QString(res.inFile.at(i))));
ui->filestableWidget->setItem(ui->filestableWidget->rowCount()-1,1, new QTableWidgetItem(new QString (res.outFile.at(i))));
ui->filestableWidget->setItem(ui->filestableWidget->rowCount()-1,2, new QTableWidgetItem(new QString (res.expFile.at(i))));
}
ui->modelparamtableWidget->setRowCount(0)
... Получаю такую ошибку:
.../mainwindow.cpp:146: error: no matching function for call to ‘QString::QString(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)’
Подскажите, где я неправ? Как надо? P.S. Хочу использовать простую строку, так как эта же инфа передается в другие функции, где QT использовать не надо.
Уважаемый All!
Возник дурацкий вопрос: Вот есть замечательный mplayer, который показывает кино, а есть ли программы на его основе (типа smplayer, kmplayer...) которые позволяют слушать музыку (типа винампа, xmms не предлагать)?
Не ради холивара!
Я давно юзаю сусю (еще с 9тки), но тут поставил мандриву на виртуалку - так, посмотреть. Первое впечатление положительное. Но влом переставлять, систему туда - обратно.
Хотел бы услышать мнениее сообщества, за что Вы используете первое или второе на домашнем десктопе?
Тут такой воарос заинтересовал: как часто можно встретить кадры в фильмах, где показан монитор с линуксом. За боянистость не пинайте, а лечше ссылочки подкиньте, если есть.
Я имею ввиду именно художественные фильмы, а не доки типа RevolutionOS))
Уважаемые форумчане! Написал свою программу (С/С++), которая в своих итерационных расчетах использует внешнюю программу ngspice. Так как расчет итерационный, то ngspice вызывается огромное количество раз. При запуске моей проги из консоли — все ОК, т. е. все что мне надо и сколько надо (по времени и количеству вызовов внешней программы).
Так запускаю NGSPICE в C++:
string exec=spice_path+" -b "+tmpspicein+" > "+tmpspiceout; sys_res=system(exec.c_str());
Далее. Для этой моей программки написал GUI на Java, где теперь моя консольная программа вызывается как внешняя:
Так запускаю свою прогу из Java:
proc = Runtime.getRuntime().exec("./SpiceExtr"+" "+Alg);
Проблема заключается в том, что после некоторого количества вызовов программы ngspice моя консольная программы доходит до строчки sys_res=system(exec.c_str()); и дальше просто перестает работать. Процесс (ngspice) есть, но он не считает (типа висит). Если запустить с теми же наптройками мою программу из консоли, то все работает, а если из GUI — то спустя какое-то количество вызовов программы ngspice — подвисает.
Резюме (для обобщения)
1______________2_________________________3
мой GUI → моя консольная программа → ngspice.
2→3 — OK
1→2→3 — не ОК.
Причем, зависание происходит примерно после тысячного запуска программы ngspice.
Может в java какие то ограничения есть для запуска внешних программ? Там, по памяти или что еще? При подвисании система работает нормально, а процесс ngspice потребряет 0% CPU.
Куда копать?
← назад | следующие → |