Я студент-программист, использующий Qt для создания таблицы для чтения для моей компании. Этот ридер является одновременно редактором и конвертером. Он читает файл .i, позволяет редактировать таблицу текстового документа, а затем выдает файл .scf, который по сути представляет собой файл с разделенными значениями, сложенный под легендой, построенной с заголовками. Я отвлекся ... В основном импортированный формат файла действительно трудно сканировать и читать (в основном невозможно), поэтому я хотел бы изменить открытый файл preBuilt QFileDialog, чтобы включить дополнительный раскрывающийся список, когда старые типы файлов выбраны для объявления заголовки их шаблонов.
Когда пользователь выбирает файлы с расширением .i (тип файла 2), я хотел бы включить дополнительное раскрывающееся меню, чтобы пользователь мог выбрать тип файла .i (выбранный шаблон). Таким образом, мне не нужно иметь дело с бог знает сколько часов, пытаясь найти способ проиндексировать все заголовки в таблице для каждого отдельного типа. В настоящее время моя функция importFile вызывает диалог, используя это:
QString fileLocation = QFileDialog::getOpenFileName(this,("Open File"), "", ("Simulation Configuration File(*.scf);;Input Files(*.prp *.sze *.i *.I *.tab *.inp *.tbl)")); //launches File Selector
Я ссылался на документацию QFileDialog , чтобы попытаться найти решение того, что мне нужно, но безрезультатно. Спасибо, что прочитали мой пост, и заранее спасибо за любое направление, которое вы можете дать по этому поводу.
ОБНОВЛЕНИЕ 16 МАРТА 2012 Г.; Во-первых, я хотел бы поблагодарить Маски за его первоначальную поддержку в этом вопросе.Ниже приведен оператор подключения, который у меня есть вместе с ошибкой, которую я получаю.
//Declared data type
QFileDialog openFile;
QComboBox comboBoxTemplateSelector;
connect(openFile, SIGNAL(currentChanged(const &QString)), this, SLOT(checkTemplateSelected()));
openFile.layout()->addWidget(comboBoxTemplateSelector);
Я также заметил, что мне не понравилось то, как я добавил QComboBox в макет модифицированного диалога (что является второй ошибкой). Я действительно надеюсь, что я просто делаю что-то глупое здесь, и это легко преодолеть.
В ответ на комментарий tmpearce вот мой код заголовка;
#include
namespace Ui {
class ReaderTable;
}
class ReaderTable : public QWidget
{
Q_OBJECT
public:
explicit ReaderTable(QWidget *parent = 0);
~ReaderTable();
public slots:
void checkTemplateSelected();
void importFile();
void saveFile();
private:
Ui::ReaderTable *ui;
};
Спасибо за прочтение и заранее спасибо за любой вклад в эту задачу!