Как получить HWND окна при наведении на него курсора мыши С++ WinApi32 или Qt?
Ответ
Функция HWNDWindowFromPoint(POINT Point) поможет вам.
Как получить HWND окна при наведении на него курсора мыши С++ WinApi32 или Qt?
Функция HWNDWindowFromPoint(POINT Point) поможет вам.
Есть строка в php допустим $str = 'z1.z2.z3.z6' Как привести её к такому виду '[f1][f2][f3][f6]' через регулярку используя preg_replace ??? То есть везде заменить z на f, но соответствующие числа оставить и заключить выражение в квадратные скобки.
$str = 'z1.z2.z3.z6'; echo preg_replace('/z(\d+)(.|$)/i', '[f${1}]', $str);
Нужно сделать так, чтобы при клике по определённому блоку (100% на 100%, условно) на месте клика появлялась SVG точка.
Добавлять элементы на место клика можно так:
var block = document.getElementById('block');
block.onclick = function(e) {
var point = document.createElement('div');
point.className = 'point';
point.style.left = e.pageX + 'px';
point.style.top = e.pageY + 'px';
block.appendChild(point);
}
html,
body {
padding: 0px;
margin: 0px;
height: 100%;
position: relative;
}
.block {
width: 100%;
height: 100%;
position: absolute;
left: 0px;
top: 0px;
}
.block .point {
position: absolute;
width: 2px;
height: 2px;
background: #000;
}
На данный вопрос уже ответили:
Упорядочивание записей в таблице данных
1 ответ
К примеру есть таблица users с одним столбцом id
id |
----
1
2
3
4
Я делаю элементарный SELECT
SELECT id FROM users
и получаю данные 1, 2, 3, 4 в том порядке в котором они пронумерованы.
Собственно вопрос: всегда ли MySQL гарантирует что данные будут получены именно в том порядке в котором они пронумерованы? Т. е. возможен ли случай когда например результат будет такой: 1, 3, 2, 4?
Или все же лучше использовать явную сортировку?
SELECT id FROM users ORDER BY id
Если вам необходимо получить упорядоченный набор, всегда используйте сортировку.
Например, если вставлять строки не по порядку, например так:
id |
----
1
4
2
3
то без сортировки вы их в таком виде и получите.
Часто вы будите получать в результате запроса строки в порядке вставки, но даже этого СУБД вам не гарантирует.
По этому, всегда когда вам нужен упорядоченный набор данных, указывайте сортировку явно.
Есть SVG демка https://codepen.io/anon/pen/gxMJOJ
Все блоки, как положено разделены на группы
И ещё не нашёл информации как выравнивать текст внутри SVG-блока?
Теги
Не получается сделать связь один к одному, ошибка :
System.InvalidOperationException: 'Unable to determine the principal end of an association between the types 'DataBase.Entities.Branch' and 'DataBase.Entities.Address'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations.'
public class Branch
{
public int Id { get; set; }
public string Metro { get; set; }
public string Name { get; set; }
public string CommentToAddress { get; set; }
public string Schedule { get; set; }
public string SchedulePrivatePerson { get; set; }
public string ScheduleGeneral { get; set; }
public string ScheduleEntities { get; set; }
public Bank Bank { get; set; }
public Address Address { get; set; }
}
public class Address
{
public int Id { get; set; }
public string CountryCity { get; set; } //город
public string StreetName { get; set; } // улица
public string StreetType { get; set; } // "тип" улицы(улица, проспект, проезд) - для оптимизации запроса к карте
public string ClarifyingAddress { get; set; } //адрес после улицы
public Branch Branch { get; set; }
}
public class Bank
{
public Bank()
{
Branches = new HashSet
public int Id { get; set; }
public string Name { get; set; }
public string Url { get; set; }
public float DollarBuy { get; set; }
public float DollarSell { get; set; }
public float EuroBuy { get; set; }
public float EuroSell { get; set; }
public System.DateTime UpdateTime { get; set; }
public /*virtual*/ ICollection
public class City
{
public int Id { get; set; }
public string Value { get; set; }
public string Name { get; set; }
}
Configs
internal class AddressConfig : EntityTypeConfiguration
Что-то вы перемудрили, для того что бы создать связь "один-к-одному" достаточно указать:
modelBuilder.Entity
Добрый день, использую tasm (Turbo assembler) и мне стало жутко интересно какая же конструкция работает быстрее :
jcxz метка
или
cmp cx, 0
je метка
причем Vim не подсвечивает вариант с jcxz
Вторая конструкция будет дольше выполняться по тактам, следовательно медленнее.
Не зря же команду придумали разработчики архитектуры x86...
Подробности тут:
Источник
Я хочу сделать фильтр на чёрно-белое изображение, это мне нужно для разных тем в приложении. Как я понимаю для этого надо использовать
ImageView header = (ImageView) findViewById(R.id.drawer_header);
header.setColorFilter(R.color.my_color);
Я создал отдельный проект для тестирования и вот что получилось:
Но если я нажимаю на любую кнопку, кроме "убрать фильтр" (он ставит цвет android.R.color.transparent), получается вот такая фигня:
Почему он делает всё фиолетовым? По логике всё должно работать. Приведу код применения цвета полностью:
...
// Покрасить в красный
public void setRedColor(View v) {
ImageView header = (ImageView) findViewById(R.id.header);
header.setColorFilter(R.color.red);
}
// Покрасить в синий
public void setBlueColor(View v) {
ImageView header = (ImageView) findViewById(R.id.header);
header.setColorFilter(R.color.blue);
}
// Покрасить в зелёный
public void setGreenColor(View v) {
ImageView header = (ImageView) findViewById(R.id.header);
header.setColorFilter(R.color.green);
}
// Убрать краску
public void setNullColor(View v) {
ImageView header = (ImageView) findViewById(R.id.header);
header.setColorFilter(android.R.color.transparent);
}
Разметка:
Вывожу в компоненте
Браузер выдаёт ошибку:
В классе пишу:
selected: any = [
{viewValue: "Элемент 1", value: "0"},
{viewValue: "Элемент 2", value: "1"},
{viewValue: "Элемент 3", value: "2"},
{viewValue: "Элемент 4", value: "3"},
];
selectedOne: string = "0";
Делаю всё по доке Material Angular
Но всё равно не хочется ставить элемент по умолчанию. Кто знает в чём может быть причина?
Angular cli 4.3; material 2.0
Директива ngModel расположена в модуле FormsModule из @angular/forms
Поэтому для ее использования нужно импортировать этот модуль в модуль где находит указанный компонент.
Есть древний как помёт мамонта софт, писаный на С с использованием curses под SCO-Unix и кодировку cp866. Я пытаюсь перенести его на linux (SLES 12) в связи понятно с чем. Вместо curses(которую тупо не нашел) при компиляции использую ncurses. И вроде все работает, но вот есть один косяк конкретно с заглавными русскими буквами - он их отображает вот так:
~Qтолбец:1
вместо
Столбец:1
Код:
#include
int main(int argc, char *argv[]) {
initscr();
mvaddstr(1, 0,
"Тут текст в кодировке cp866.");
getch();
}
Выводит:
~Rут текст в кодировке cp866.
Если весь тот-же текст параллельно выводить printf'ом, то выводится корректная строка.
Для исправления данной ситуации надо добавить вызов функции use_legacy_coding(2); после initscr();
the parameter is in the range 128-159, i.e., a C1 control code. If
use_legacy_coding has been called with a 2 parameter, unctrl returns
the parameter, i.e., a one-character string with the parameter as the
first character. Otherwise, it returns ''~@'', ''~A'', etc., analogous
to ''^@'', ''^A'', C0 controls.
Такой код корректно отображает текст в однобайтовой восьмибитной кодировке CP866:
#include
int main(int argc, char *argv[]) {
initscr();
use_legacy_coding(2);
mvaddstr(1, 0,
"Тут текст в кодировке cp866.");
getch();
}
Возможно ли в JavaScript проверить, поддерживает ли браузер spread operator? Будет ли в этом браузере работать следующая конструкция?
var array = [...arg];
в данном случае поможет eval и try..catch
при попытке выполнить код с использованием spread оператора в браузере, который его не поддерживает будет кинуто исключение об ошибке синтаксиса, поэтому проверяющая функция может выглядеть так:
function checkSpread() {
try {
return eval('[...[]]==""');
} catch (e) {
return false;
}
}
console.log(checkSpread());
Текущий сниппет, например в IE11 вернет false, а в Chrome - true
Вместо eval так же можно использовать конструктор Function
function checkSpread() {
try {
var func = new Function('return [...[]]');
return func() == '';
} catch (e) {
return false;
}
}
console.log(checkSpread());
Есть окно на PyQt5
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget
class Window(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setFixedSize(200, 350)
self.setWindowTitle('Test')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
w = Window()
sys.exit(app.exec_())
Как убрать ненужный пункт меню Развернуть/Свернуть?
В Qt для различных виджетов и диалоговых окон можно задавать WindowsFlags, меняющие их отображение. Чтобы сделать что-то нестандартное, нужно объявить наш виджет custom'ным, для этого используется флаг Qt::CustomizeWindowHint, Например, следующий код показывает только кнопку закрытия у диалогового окна в Qt (C++):
QDialog d;
d.setWindowFlags( Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint );
d.setWindowTitle("abcd");
d.show();
Подробнее:
официальный пример работы с флагами Qt
перечень Qt::WindowsFlags
Имеется коллекция объектов:
public class Param
{
public string Name { get; set; }
public string Description { get; set; }
}
Эту коллекцию необходимо привязать к ComboBox так, чтобы в качестве элемента списка был Name, а в качестве всплываемой подсказки при наведении на каждый элемент был Description. Это легко делается:
Все бы ничего, но как сделать так, чтобы когда Description null или пустой, ToolTip вообще не отображался. Сейчас отображается пустой квадратик. Вариант ниже не помог. Заранее спасибо.
У вас как-то сложно. Значение null должно убирать ToolTip и так, так что проблема только с пустой строкой. Проще всего просто отловить это через конвертер.
class NullIfEmptyConverter : IValueConverter
{
public object Convert(object value, Type targetType, object p, CultureInfo ci) =>
(string)value == string.Empty ? null : value;
public object ConvertBack(object value, Type targetType, object p, CultureInfo ci) =>
throw new NotSupportedException();
}
(или, как подсказывает @Андрей в комментариях, string.IsNullOrWhiteSpace((string)value) ? null : value).
Ваш код получается таким:
Не забудьте положить в ресурсы окна
К примеру, есть класс User. Есть ViewModel, в которой есть свойство LastUser. Свойство периодически обновляется, генерируя NotifyPropertyChanged. На форме, поверх остальных элементов, лежит невидимая панель. При обновлении свойства, необходимо показать панель на несколько секунд, а затем спрятать. Как можно реализовать такое поведение? Есть ли какой-нибудь EventTriger или DataTrigger?
Наиболее простым видится вынести в VM отдельное свойство для видимости панели
и сделать метод, который запускать в сеттере LastUser
private async void ShowDetails()
{
IsVisiblePanel = true;
await Task.Delay(TimeSpan.FromSeconds(1));
IsVisiblePanel = false;
}
Если не хотите делать это в VM - можно сделать во View, подписавшись вручную на PropertyChanged и делая тоже самое.
Другой вариант, немного более замороченый - задействовать анимацию.
Давайте будем действовать через прозрачность, у меня вот такая панель:
Обратите внимание, у панели установлен DataContext, это важно, мы этим воспользуемся в дальнейшем.
Давайте добавим в панель стиль и определим триггер, который будет скрывать панель когда она полностью прозрачна:
Хорошо, а теперь управлять прозрачностью будет анимация, для этого запустим ее в EventTrigger
Чтобы событие Binding.TargetUpdated возникало нужно его включить:
DataContext="{Binding SelectedUser, NotifyOnTargetUpdated=True}"
Теперь надо отключить панель в обычном режиме: Opacity="0"
Ну и можно сделать анимацию посимпатичнее:
Полный код панели, на всякий случай:
PS: как раз вчера появилась статья на Хабре, в которой описаны возможные замены подписке на Binding.TargetUpdated
Получается всё можно сделать гораздо проще используя PropertyChangedTrigger из пакета Microsoft.Expression.Interactions
Мне нужно, чтобы иконка расширения при определенных условиях становилась "серой". Ни как не могу найти способ заставить хром рисовать такую иконку.
Важный момент - "серые" иконки - это именно фича хрома. Т.е. вариант с заготоволенными иконками с нормальными и серыми цветами меня не интересует.
Стоит пойти от обратного: почему иконка у вас "цветная"? Полагаю вы используете page_action, иконка которого всегда цветная/оригинальная.
То, что вас интересует - это browser_action. Данное API позволяет поместить иконку приложения, которая по-умолчанию не активирована для каждого таба (и имеет серый цвет).
Задача заключается в следующем.
Нужно сделать кнопку, которая переключает вид товаров на сайте(кубиками или списком).
Из моих идей:
Через ajax посылать запрос, а в ответ получать страницу с товарами в требуемом стиле
Через js редактировать html код товаров(какой-то костыль, кажется)
Другая страница в требуемом формате(самый худший вариант, как понимаете)
Прошу помочь с этой задачей. Как ее лучше решить? Может есть более простой способ?
В данном случае стоит просто манипулировать стилями:
var products = document.getElementById('products');
document.getElementById('grid').addEventListener('click', function(){
products.classList.add('grid');
});
document.getElementById('list').addEventListener('click', function(){
products.classList.remove('grid');
});
.product {
background: #CCC;
width: 100%;
height: 50px;
border: 1px solid #FFF;
box-sizing: border-box;
float: left;
}
.grid .product {
width: 50%;
}
Интересует насколько это влияет на производительность запроса в PHP
все запросы я делаю просто SELECT * ... LIMIT 0,20 и он постоянно подтягивает значения всех столбцов (их примерно до 15), но использую из них я максимум 6-7.
У меня все время стоит лимит, а в базе строк больше > 10000 вот интересно это сильно влияет на скорость? а что если дальше продолжать еще делать JOIN'ы ?
В большинстве случаев морочиться на эту тему не нужно. Вопрос про * в запросах - это такая trivia, которую нубы с придыханием рассказывают друг другу и которую можно прочитать в идиотских списках "25 способов ускорить свой скрипт в 100500 раз".
Если удобно писать * и в базе нет блобов с гигазами варезов, а есть 15 несчастных варчаров, то никто не умрет от звездочки.
Плюсы использования звездочки:
при добавлении полей в таблицу не надо менять код запроса
запрос становится читабельнее и короче
Минусы использования звездочки:
большой потенциальный объем данных, передаваемых в пхп, может сказаться на производительности
если в запросе используется временная таблица, то наличие ненужных полей может катастрофически отразиться на времени запроса, поскольку во временную таблицу будут записываться все поля таблицы. Разумеется, лучше избегать запросов, которым требуется создание временной таблицы.
Допустим, у меня есть строка:
stroka = input()
Вводные данные:
qwertyu iopasd fghjklz xcvbnm
Как сделать так, чтобы на выходе все слова были с заглавной буквы?
Qwertyu Iopasd Fghjklz Xcvbnm
Не какое-то одно слово после какой-нибудь точки, а все слова в строке.
Используйте метод title
s = 'qwertyu iopasd fghjklz xcvbnm'
print(s.title())
Результат:
Qwertyu Iopasd Fghjklz Xcvbnm
Есть строка, например, "установить ВКЛ/ВЫКЛ".
массив_строки = строка.split('/(?=\/)|\s/')
в данном случае '/' оказывается в начале следующего элемента - '/ВЫКЛ'
Какой нужен regex для того, что бы появился следующий массив: ['установить', 'ВКЛ/', 'ВЫКЛ'] ?
(?=\/) - положительный блок просмотра вперёд, тогда как тут пригодился бы блок предварительного просмотра назад, но регулярные выражения JavaScript не поддерживают его. (?<=\/)|\s+ - так бы оно выглядело в s.split()
Можно найти все совпадения символов, отличных от пробельных и символа косой черты, за которыми может находится 1 необязательный знак косой черты:
/[^\s\/]+\/?/g
Демо регулярного выражения. Перед / обязательно наличие непробельного символа, отличного от /
console.log(
"установить ВКЛ/ВЫКЛ".match(/[^\s\/]+\/?/g)
);
Есть следующая система.
Существует сервер обработки фото на одном сервере и есть основной сервер.
Пользователь отправляет форму, в которой есть фото, на сервер обработки фото, сервер фото обрабатывает его и отправляет на основной сервер через requests.post. На данный момент работает, только если сначала сохранить файл на физический диск, а потом уже отправить его с (указанием пути) на основной сервер.
Как можно отправить файл через requests.post, не сохраняя его на диск?
Пробовал конвертировать с помощью StringIO, BytesIO, но так ничего и не вышло.
сохраняю на данный момент так:
# Получаю и сохраняю фото
f = request.FILES['photo']
f.save(file_path)
# Меняю размер фото
image = Image.open(file_path)
image.thumbnail([150, 150], Image.ANTIALIAS)
image.save(file_path, image.format, quality=100, optimize=1)
# Отправляю так
fil = open(file_path, 'rb')
filess = {'photo': ('photo.jpg', fil, 'image/jpeg')}
request = requests.post("%s%s" % (domen, url), data=post, files=filess)
Собственно нужно отправить уже измененный файл image
На счет вывода тут ошибок не уверен что получится, пробовал разные варианты и много и ошибки в некоторых случаях не выходили, но на основном сервере файл не сохранялся, значит что то не то отправлял, на основном сервере нет возможности посмотреть логи ошибок.
То что я находил по отправке файла через StringIO ничего не работало, то сам модуль ругался что данные не те, то модель по отправке ругался что данные не те, поэтому причина видимо в том что я файл не правильно преобразовывал в StringIO. Видимо мой вопрос сводится к тому как правильно преобразовать этот файл к такому формату и потом как эти данные отправить через requests.post
Основной сервер-то как принимает картинку? Тоже как загружаемый файл? Тогда предельно просто:
def upload_view(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
f = request.FILES['photo']
requests.post('http://example.com', files={f.name: f})
return redirect('upload:success')
else:
form = UploadFileForm()
return render(request, 'upload.html', {'form': form})
Если он ожидает поток байт в теле запроса, то чуть сложнее:
def upload_bridge(f):
for chunk in f.chunks():
yield chunk
def upload_view(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
requests.post('http://example.com',
data=upload_bridge(request.FILES['photo']))
return redirect('upload:success')
else:
form = UploadFileForm()
return render(request, 'upload.html', {'form': form})
Только учтите, что большой файл может надолго поставить обработчик колом. Это может привести либо к обрыву соединения по таймауту, либо исчерпанию обработчиков и последующей недоступности сайта.
UPDATE:
from StringIO import StringIO
f = request.FILES['photo']
input = StringIO(f.read())
output = StringIO()
image = Image.open(input)
image.thumbnail([150, 150], Image.ANTIALIAS)
image.save(output, 'PNG')
requests.post('http://example.com', files={f.name: output})
output.close()
input.close()
Этот вариант не только будет обработчик ставить колом, но ещё и память жрать будет.
Изначально у меня метод выглядит следующим образом:
override fun onListItemClick(itemIndex: Int, itemCode: String) {
val data = adapter.getItem(itemIndex)
if (data is TitleValueItem) {
when (data.titleId) {
R.string.v2_mobile_settings_language -> onLanguageClick()
}
}
}
теперь я его решил преобразовать таким образом:
override fun onListItemClick(itemIndex: Int, itemCode: String) {
when(adapter.getItem(itemIndex) as? TitleValueItem? ?: return) {
R.string.some -> onLanguageClick()
}
}
И он мне ругается на строковый ресурс, что мол Int вместо TitleValueItem, не могу понять, что я забыл дописать то .
Попробуйте следующим образом:
override fun onListItemClick(itemIndex: Int, itemCode: String) {
when ((adapter.getItem(itemIndex) as? TitleValueItem)?.titleId ?: return) {
R.string.v2_mobile_settings_language -> onLanguageClick()
}
}
Есть коллекция из элементов с переменной
A=4
B=1
C=65
D=6
E=414
Надо их расположить в порядке возрастания. 1 4 6 65 414. Есть можно то покажите как использовать в коллекции без самодельных циклов.
Когда у вас будет массив используйте функцию
//заполняем массив...
Arrays.sort(array);
Примите к сведению что массивы и коллекции эти разные вещи. Не забудьте заимпоритировать пакет Arrays
Если вопрос касается коллекций, то следующий подход, например для ArrayList:
List list = new ArrayList();
//заполняем лист...
Collections.sort(list);
строка: abcd, вывести ab bc cd. можно ли это сделать в одной регулярке, без replace?
p.s условие будет куда сложнее, чем вывести последний символ предыдущего результата
Сам по себе движок регексов в C# выдает непересекающиеся совпадения, но можно использовать positive lookahead:
var matches = Regex.Matches("abcd", "(.)(?=(.))")
.Cast
Точки заменить на соответствующие regex-ы для перекрываемых / неперекрываемых частей.
Стоит заметить, что простое решение с циклом и вызвов перегрузки Match с указанием начального индекса будет проще, читабельнее и эффективнее на длинных строчках.
Есть кучка чекбоксов, у каждого есть свой id. Хочу чтобы при загрузке документа загорелись те, которые я хочу. Но что бы не одновременно загорелись, а через допустим 200 миллисекунд, и в рандомном порядке.
Не могу додуматься как это сделать. Сколько не пробовал, либо загораются все сразу, либо вообще не загораются.
$('#sass').prop('checked',true);
Вот так писал. Как задать им очередь не знаю
Выбираем все желаемые элементы.
Превращаем набор в массив.
Перемешиваем используя алгоритм Фишера-Йетса
Для каждого элемента массива создаём задержку для изменения чекбокса.
function shuffle(a) {
for (var m=a.length; m; ) {
var i = Math.random() * m-- | 0;
var t = a[i];
a[i] = a[m];
a[m] = t;
}
return a;
}
$(function () {
var DELAY = 500;
var els = shuffle($("#a,#c,#g,#i,#j,#k,#l,#o,#p,#s,#u,#v,#x").toArray());
for (var q=0; q
Как выполнить какое-то действие, если в коллекции найдется элемент с соответствующим полем?
List
for (item:items){
if (Objects.equals(item.getId(), "123123123")){
customer="admin";
break;
}
}
Как это будет выглядеть с использование java 8, stream api?
Воспользуйтесь методом Stream::anyMatch
boolean contains = items
.stream()
.anyMatch(item -> Objects.equals(item.getId(), "123123123"));
String customer = contains ? "admin" : null;
Ideone
Веб дизайн только познаю, хотя занимаюсь им давненько, но понимаю что это бездна знаний и вот по сути вопрос в чем. Как сделать разный CSS при перезагрузке страницы? Разные иконки например, что бы разным посетителям сайта показывались разные иконки. И при обновлении нажимая на F5 менялись стили иконок. ???
На чистом JavaScript
var styles = ['blue', 'red', 'green']; // диапазон значений
randomStyles('class', styles); // вызываем функцию "рандомных стилей"
function randomStyles(sel, arr) { // sel - селектор, arr - диапазон значений
var els = document.getElementsByClassName(sel), // получаем элементы с необходимым классом
newArr = arr; // объявляем новый массив
for (let i = 0; i < els.length; i++) { // перебираем все элементы с классом
var randClass = newArr[Math.floor(Math.random() * newArr.length)]; // рандомное значение из массива
els[i].classList.add('class-' + randClass); // добавляем элементу класс с полученным значением
newArr.splice(newArr.indexOf(randClass), 1); // удаляем из массива подставленный класс, чтобы избежать повтора
}
}
.class {
width: 200px;
height: 50px;
margin-bottom: 10px;
}
.class-blue {
background: blue;
}
.class-red {
background: red;
}
.class-green {
background: green;
}
Есть проблема, не могу найти решения.
Есть блок, у него внутренняя тень. Что бы тень накладывалась на элементы приходиться ставить отрицательный z-index.
.content {
height: 140px;
overflow-x: auto;
white-space: nowrap;
overflow-y: hidden;
padding: 20px 10px 10px 10px;
box-shadow: inset 0px 0px 15px 10px rgba(0, 0, 0, 1);
backgound-color: yellow;
border: 1px solid black;
width: 300px;
}
.item {
height: 100px;
width: 100px;
background-color: yellow;
display: inline-block;
cursor: pointer;
z-index: -1;
position: relative;
}
.item:hover {
background-color: red;
}
Быть может такой вариант подойдет. Правда скролл получается внутри.
.content {
padding: 20px 10px 0 10px;
width: 300px;
height: auto;
box-sizing: border-box;
white-space: nowrap;
overflow-x: auto;
overflow-y: hidden;
}
.item{
height: 100px;
width: 100px;
background-color: yellow;
display: inline-block;
cursor: pointer;
position: relative;
}
.item:hover{
background-color: red;
}
.wrapper {
border: 1px solid black;
box-sizing: border-box;
width: 300px;
overflow: hidden;
position: relative;
padding-bottom: 20px;
}
.shadow-top, .shadow-right, .shadow-bottom, .shadow-left {
box-shadow: 0 0 15px 10px rgba(0,0,0,1);
position: absolute;
}
.shadow-right, .shadow-left {
height: 100%;
width: 0;
top: 0;
}
.shadow-top, .shadow-bottom {
width: 300px;
height: 0;
left: 0;
}
.shadow-top {
top: 0;
}
.shadow-right {
right: 0;
}
.shadow-bottom {
bottom: 0;
}
.shadow-left {
left: 0;
}
Создал свою секцию в файле конфигов, могу править значения в существующих строках, но не получается удалять и добавлять строки. Мой код:
Сам конфиг:
Так добавьте нужный метод в CircuitsCollection
public void Add(CircuitElement element)
{
BaseAdd(element);
}
доброго времени суток. объясните, пожалуйста, почему
var_dump("любая строка" == 0);
возвращает
bool(true)
при этом если 0 привести к строковому или булеву типу, либо использовать жёсткое сравнение, то условие отрабатывает нормально(false). как так получается что 0 равен любой строке? php 5.6.30
Документация
В случае, если вы сравниваете число со строкой или две строки,
содержащие числа, каждая строка будет преобразована в число, и
сравниваться они будут как числа.
Преобразование в число
Значение определяется по начальной части строки. Если строка
начинается с верного числового значения, будет использовано это
значение. Иначе значением будет 0 (ноль).
Соответственно при сравнении "строка" == 0, строка преобразуется в число 0
Ребята как сделать на скриншоте переключалку видео, то есть с права видим миниатюры, клацаем на нее и в левой стороне подгружается само видео, есть у кого то такой скрипт.
Вот так у меня выводятся сам блок с видео и миниатюр!
$('.video').on('click', function(e) { e.preventDefault(); // предотвращаем стандартное поведение ссылки var vid = $(this).attr('data-video'); // получаем id видео из атрибута $('.bigvideo iframe').attr('src', 'https://www.youtube.com/embed/' + vid); // и подставляем его в iframe }); a { display: block; cursor: pointer; } .bigvideo { max-width: 200px; margin: 0 auto; } Видео 1 Видео 2 Видео 3 Видео 4
Постоянно напрягает что при переключении в xml-файлы, по умолчанию, сначала открывается вкладка Design а не Text. И постоянно приходится переключаться. Можно ли это изменить в настройках?
Настройка "предпочитать XML редактор":
Settings.. -> Editor -> Layout Editor -> Prefer XML editor - отметить галочкой.
Скажите пожалуйста, чем отличаются два случая:
public class Main {
public static void main(String[] args) {
Class c1 = String.class; // Строка 3
Class c2 = String.class; // Строка 4
System.out.println(c1 +", " + c2);
}
}
В 3-ей и 4-ой строках мы делаем что-то похожее, но компилятор предупреждает, что c1 будет ссылкой на объект сырого типа, а c2 для компилятора -- прекрасная ссылка на прекрасный объект Class
Не понимаю разницы. И сырой тип и параметризованный знаком вопроса одинаково заполнены классом Object во время выполнения. Да и во время компиляции тот и другой обрабатываются по равному...
Возможно это просто философское предупреждение от Java, что сырой тип он сбивает с пути истины, а Class сразу показывает, что программист нацелен пихать в c2 всевозможные классы?
Брюс Эккель в "Философия Java" пишет, что использование Class вместо Class предпочтительнее, хотя оба варианта эквивалентны за тем лишь исключением, что при компиляции кода, где используется Class, будет выдаваться предупреждение. Кроме этого Эккель отмечает, что использование Class указывает, что разработчик более осмысленно подошёл к выбору типа, а не используете просто Class по незнанию.
Здравствуйте, есть простая функция скролла вниз:
$('body').animate({ scrollTop: $('.addanswer').offset().top - 70 }, 500);
Но дело в том что вчера она внезапно перестала работать на хроме, хоть я и не вводил правки в код, причем в Яндекс браузере все корректно работает, не подскажите, это обновления такие?
Вот простой пример, и оно работает, дело не в скрипте а в самой странице, что то там не дает работать вашему коду. посмотрите ошибки в кансоле.
$(document).ready(function(){
$('.scroll').bind('click',function(){
$('html,body').animate({ scrollTop: $('div').offset().top - 70 }, 500);
});
});
div{
height: 500px;
}
Как узнать какая версия nuget установлена?
Если просто ввести:
PM> Get-Package -ListAvailable
то это может быть версией?
NuGet.Core {2.14.0} NuGet.Core is the core framework assembly for NuGet that the rest of NuGet builds upon.
То, что у вас в вопросе, это версия библиотеки, которая используется Nuget менеджером.
Версия же самого менеджера отображается в консоли:
Package Manager Console Host Version 3.4.4.1321
А также в Tools -> Extensions and Updates:
Добрый вечер! Имеется скрипт из книги
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE',
'tango_with_django_project.settings')
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE',
'tango_with_django_project.settings')
import django
django.setup()
from rango.models import Category, Page
def populate():
python_pages = [
{'title': 'Official Python Tutorial',
'url':'http://docs.python.org/2/tutorial'},
{'title':"How to Think like a Computer Scientist",
'url':"http://www.greenteapress.com/thinkpython/"},
{"title":"Learn Python in 10 Minutes",
"url":"http://www.korokithakis.net/tutorials/python/"}
]
django_pages = [
{"title":"Official Django Tutorial",
"url":"https://docs.djangoproject.com/en/1.9/intro/tutorial01/"},
{"title":"Django Rocks",
"url":"http://www.djangorocks.com/"},
{"title":"How to Tango with Django",
"url":"http://www.tangowithdjango.com/"}
]
other_pages = [
{"title":"Bottle",
"url":"http://bottlepy.org/docs/dev/"},
{"title":"Flask",
"url":"http://flask.pocoo.org"} ]
cats = {"Python": {"pages": python_pages},
"Django": {"pages": django_pages},
"Other Frameworks": {"pages": other_pages} }
for cat, cat_data in cats.items():
c = add_cat(cat)
for p in cat_data['pages']:
add_page(c, p['title'], p['url'])
for c in Category.objects.all():
for p in Page.objects.filter(category=c):
print('- {0} - {1}'.format(str(c), str(p)))
def add_page(cat, title, url, views=0):
p = Page.objects.get_or_create(category=cat, title=title) [0]
p.url=url
p.views=views
p.save()
return p
def add_cat(name):
c = Category.objects.get_or_create(name=name)[0]
c.save()
return c
if __name__ == '__main__':
print('Starting Rango population script...')
populate()
При запуске он должен выдавать примерно такой результат:
$ python populate_rango.py
Starting Rango population script...
- Python - Official Python Tutorial
- Python - How to Think like a Computer Scientist
- Python - Learn Python in 10 Minutes
- Django - Official Django Tutorial
- Django - Django Rocks
- Django - How to Tango with Django
- Other Frameworks - Bottle
- Other Frameworks - Flask
Но, увы, ничего не происходит. Уже час ломаю голову над этим. Просто при запуске пустая строчка без каких-либо ошибок
Весь последний блок начиная со строки if __name__ == '__main__': нужно сместить на один отступ влево. Иначе в скрипте просто нечему будет начать выполняться.
Я использую WMI запросы для получения данных об удаленных компьютерах, но передача данных должна быть защищена. На вики и msdn'е я ничего подходящего не нашёл, но должна же винда как - то шифровать эти данные. Где можно узнать как она это делает, ну или не делает? Никогда не думал о таких вещах, поэтому прощу прощения, если вопрос глупый.
Вот здесь задавали подробный вопрос. Если верить ответу, то шифруется только аутентификация посредством Kerberos. Сами запросы не шифруются
Нашел такой плагин залипания при прокрутке, проблема в том что залипания не работает под мобильные устройства вот demo как сделать так что бы при прокрутке залипания заработало, position: sticky; тоже не работает
Помогло вот этот плагин: http://bureau.ru/bb/soviet/20130620/stickyeah.js
Добавим в нужный блок stickyeah например:
Что угодно.
В рамках урока по паттерну MVVM для приложений WPF мне нужно было добавить библиотеку System.Windows.Interactivity.dll через Reference Manager. Я её там не обнаружил (версия Visual Studio - 2017). На скриншоте ниже - всё, что есть в результатах поиска, начинающееся с System.Windows
Я подумал, что возможно данная библиотека уже встроена в новую версию проекта WPF (хотя в списке уже подключённых ссылок её тоже нет), и когда добавил нижеследующий код в ApplicationViewModel.cs, никаких ошибок пока что не было отображено средой разработки:
private RelayCommand doubleCommand;
public RelayCommand DoubleCommand {
get {
return doubleCommand ??
(doubleCommand = new RelayCommand(obj => {
Phone phone = obj as Phone;
if (phone != null) {
Phone phoneCopy = new Phone {
Company = phone.Company,
Price = phone.Price,
Title = phone.Title
};
Phones.Insert(0, phoneCopy);
}
}));
}
}
Однако, когда я добавил код XAML, то среда выдала сообщение о том, что в пространстве имён clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity не существует Interaction, EventTrigger и InvokeCommandAction
Не знаю, каким образом это связано с библиотекой System.Windows.Interactivity, но как следует решить данную проблему?
Требуемая библиотека является частью Microsoft Expression Blend 4 SDK и не включена в стандартную поставку, но вы всегда можете подключить ее из NuGet Gallery: System.Windows.Interactivity.WPF by Microsoft
Пользователи Visual Studio 2017 могут установить Microsoft Blend SDK в систему с помощью Visual Studio Installer, для этого на вкладке "Отдельные компоненты" ("Individual components") в разделе "Пакеты SDK, библиотеки и платформы" ("SDKs, libraries, and frameworks") необходимо установить галочку напротив пункта "Пакет SDK для Microsoft Blend для Visual Studio для платформы .NET" ("Blend for Visual Studio SDK for .NET") и нажать кнопку "Изменить".
После этого, библиотека System.Windows.Interactivity станет доступна из Reference Manager в разделе Assemblies/Extensions
Также, Blend SDK можно загрузить и установить в систему из центра загрузок Microsoft: 3.5, 4.0
Как с помощью python 3.6.1 сделать модуль для c++ Тоесть написать на python какой-то модуль чет с ним сделать и запускать через c++ допустим print("Hello, world") и когда мы импортируем эту библиотеку в c++ то будет выводить Hello, world
Вы можете Питон-код как внешнюю команду вызвать. К примеру:
#include
int main() {
return system("python -mwebbrowser http://example.com");
}
Чтобы выполнить Питон-код в С++, можно встроить (embed) Python-интерпретатор
#include
int main()
{
Py_Initialize();
PyRun_SimpleString("print('hello world')");
return Py_FinalizeEx() < 0;
}
Чтобы собрать программу, можно Makefile использовать:
NAME := embed-python-interpreter
PYTHON_VERSION := python-3.6
$(NAME): $(NAME).cc
$(CXX) `pkg-config --cflags ${PYTHON_VERSION}` $< -o $@ `pkg-config --libs ${PYTHON_VERSION}`
Также можно встраивать Питон, используя cffi, cython
Можно скомпилировать подмножество кода на Питоне в Си. К примеру, используя Pypy translate.py программу, которая умеет RPython в Си транслировать.
Обычно, наоборот C/C++ код используется, чтобы расширение для Питона создать или напрямую с помощью ctypes, cffi Си код вызывается из Питона:
>>> import ctypes
>>> libc = ctypes.CDLL(None)
>>> libc.printf(b"abc
")
abc
4
Здесь вызывается printf() Си функция из libc, включённой в CPython интерпретатор. abc это вывод в C stdout. 4 это Python REPL печатает возвращаемое значение из printf() (4 байта напечатано). Вот более сложные примеры:
вызов clock_gettime() Си функции из
Вот пример использования OpenSSL API, чтобы из x509 сертификата серийный номер достать который показывает, что при вызове многих функций, удобней более высокоуровневыми библиотеками пользоваться нежели напрямую ctypes
Cython удобен, чтобы интегрировать С/C++ код с Питоном или заметно ускорить Питон код. clipped_cumsum(), реализованная в Cython, в 100 раз быстрее аналога на чистом Питоне и иногда даже на порядок быстрее реализаций с помощью numpy, pandas, примеры: rotT(), max_rolling_sum(). Cython позволяет отпускать GIL, поэтому возможно ускорить чистые вычисления с помощью нескольких потоков, пример: b2a_bin(). Cython можно встретить в исходниках популярных библиотек таких как lxml, numpy, scipy, pandas, scikit-learn.
Исправил все баги и недочеты что написали в прошлый раз, добавил нормальное отображение текста и фотографии, теперь ссылка будет ссылкой, фотка фоткой и тд...
Добавил проект этот в github
И переписал его, чтобы он удовлетворял принципам MVP (Хотя не уверен т.к. model имеет ссылку на Presenter)
Прошу подсказать с ревью кода
По одному классу CommentAnswerObject. Думаю в остальных так же.
Зачем тут два огромных конструктора, фактически дублирующих друг друга?
public CommentAnswerObject(String urlImage, String name, String dogName, String text, String date, int numberUserComments, int numberLikeComents, boolean like, List
public CommentAnswerObject(String urlImage, String name, String dogName, String text, String date, int numberUserComments, int numberLikeComents, boolean like) {
this.urlImage = urlImage;
this.name = name;
this.dogName = dogName;
this.text = text;
this.date = date;
this.numberUserComments = numberUserComments;
this.numberLikeComents = numberLikeComents;
this.like = like;
}
Второй легко заменяется на
public CommentAnswerObject(String urlImage, String name, String dogName, String text, String date, int numberUserComments, int numberLikeComents, boolean like){
this(urlImage, name, dogName, text, date, numberUserComments, numberLikeComments, like, new ArrayList<>());
}
Такое огромное количество аргументов конструктора в 99% случаев говорит о том, что класс неправильно спроектирован.
Действительно ли в этом объекте нужны все эти поля? Как он используется? Какова его ЕДИНСТВЕННАЯ ОТВЕТСТВЕННОСТЬ?
Вот это экстрактится в класс CommentContent
this.urlImage = urlImage;
this.name = name;
this.dogName = dogName; //имя собаки?
this.text = text;
Для чего используются эти два свойства?
this.numberUserComments = numberUserComments;
this.numberLikeComents = numberLikeComents;
По CardObject. Все то-же, но и еще: у вас мешанина методов. Один конструктор сверху, другие разбросаны по тексту. Почитайте Роберта Мартина "Чистый код" раздел "Вертикальное форматирование"
Класс HTTP. По феншую лучше Http. Статика - зло. В данном случае лучше применить паттерн Singletone. Он тоже не сахар, но при умелой готовке вполне себе ничего.
ParsingPage - вообще жесть. Чистый Код в руки и читать до дыр. Методы адски перегружены логикой и вызывают кровотечение из глаз при попытке понять, что происходит. Для начала разбить монстров на кучу мелких методов, выполняющих атомарные операции и понять, что половина из них дублирует друг друга. Вообще данный класс штуки на 4 разбивать надо, на глаз если.
Например класс ParsingPage метод parsFullTag (закроем глаза на статику), первая итерация "причесывания"
private static NameAndTagFullInfoObject full;
private static String html;
public static NameAndTagFullInfoObject parsFullTag(String html) {
full = new NameAndTagFullInfoObject();
ParsingPage.html = html;
setName();
setUrlPhoto();
if (html.contains("