Как я мог использовать QColorDialog в другом виджете не как отдельное диалоговое окно?

Таким образом, похоже, что EF Core в настоящее время не поддерживает отложенную загрузку. Это прибывает, но может быть некоторое время выключено.

На данный момент, если кто-то еще сталкивается с этой проблемой и борется. Ниже приведена демонстрация использования Eager loading , и это то, что вы сейчас должны использовать.

Скажем, до того, как у вас был объект person, и этот объект содержал список шляп в другой таблице.

Вместо того, чтобы писать

var person = _context.Person.Where(p=> p.id == id).ToList();

person.Hats.Where(h=> h.id == hat).ToList();

Вам нужно написать

var person = _context.Person.Include(p=> p.Hats).Where(p=> p.id == id).ToList();

И тогда person.Hats.Where(h=> h.id == hat).ToList(); будет работать

Если у вас есть несколько списков - включите в цепочку

var person = _context.Person.Include(p=> p.Hats).Include(p=> p.Tickets)
                            .Include(p=> p.Smiles).Where(p=> p.id == id).ToList();

Я понимаю, почему этот метод безопаснее, потому что вы не загружаете огромные наборы данных, которые могут замедлить работу. Но я надеюсь, что они скоро загрузят Lazy !!!

Caz

8
задан balint.miklos 20 May 2009 в 15:37
поделиться

4 ответа

Если есть способ сделать это чисто, я об этом не знаю. Насколько я понимаю, у вас есть несколько вариантов:

  • Подклассифицируйте его и скопируйте код, который фактически создает виджет, внося изменения, чтобы удалить часть, которая создает диалоговое окно, и заменить ее каким-либо другим контейнером.
  • Если вы не намерены использовать этот конкретный диалог, виджет цветового треугольника из решений qt может работать, потому что это не диалоговое окно. Вы можете найти его по адресу http: // doc.trolltech.com/solutions/4/qtcolortriangle/qtcolortriangle.html (удалите пробел в ссылке)
-1
ответ дан 5 December 2019 в 08:26
поделиться

Возможно, вы захотите взглянуть на некоторые Решения Qt, которые сделают хотя бы часть того, что вы хотите. Например, см. Решение Color Picker , которое, как они отмечают, теперь доступно как библиотека с лицензией LGPL.

В качестве альтернативного (и, вероятно, менее поддерживаемого) подхода, я вспоминаю некоторую работу в Qt-Labs о встраивании виджетов Qt, включая QDialog s, в QGraphicsScene . Вы могли бы сделать это, а затем изменить вид вашей графической сцены, чтобы пользователю была видна только часть диалогового окна выбора цвета, которая вас интересует. Однако это звучит очень хакерски.

2
ответ дан 5 December 2019 в 08:26
поделиться

Попробуйте создать подкласс QColorDialog

0
ответ дан 5 December 2019 в 08:26
поделиться

Используйте QGraphicsView и добавьте к нему QDialog . И добавьте QGraphicsView к виджету, если вы хотите показать диалог.

0
ответ дан 5 December 2019 в 08:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: